Scrapy - 通过Spider传递已删除的URL

时间:2013-11-20 22:17:53

标签: python subdomain scrapy conditional-statements web-crawler

我是Scrapy和Python的新手,而且所有文档都让我感到有些困惑并且重载了新信息!

我的项目是首先找到并抓取某个类别的博客的网址。这个过程我很舒服。然而,为了实现我的最终结果,我想通过统计网站传递这些网址 - 比如,hypestat.com。正如您可以通过此查询(http://pinterest.com.hypestat.com/)看到的,要获取统计信息,您查询的网站会作为子域显示在基本网址中。

有没有办法制作一个蜘蛛来遍历这些网址的整个数组并将它们添加到hypestat.com?

如果有人能指出我正确的方向,那就太好了!

1 个答案:

答案 0 :(得分:2)

您可以在博客解析功能中向附加的Hypestat URL发出请求,并传递回调函数来处理来自hypestat的结果

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    subjects = hxs.select("//div[@class='BlogList']")
    for subject in subjects:
        item = BlogItem()
        url =  "http://"+subject.select('a/@href').extract()+".hypestat.com"
        request =  Request(url,  callback = self.parse_statdetail)
        request.meta['item'] = item
        yield request

def parse_statdetail(self, response):
    hxs = HtmlXPathSelector(response)
    item = response.meta['item']
    item ["origin"] = response.url
    item ["stat"] = hxs.select("//div[@class='website_report_text']/b/text()").extract()[2])
    yield item

http://doc.scrapy.org/en/latest/topics/spiders.html#basespider-example