2013-11-20 30 views
0

我是Scrapy和Python的新手,並且所有的文檔都讓我感到有點困惑,並且重載了新的信息!Scrapy - 通過Spider傳遞抓取的URL地址

我的項目是首先找到並颳去某個類別的博客的URL。這個過程我很舒服。不過,爲了達到我的最終結果,我想通過統計網站傳遞這些網址 - 比如說hypestat.com。正如你可以看到這個查詢(http://pinterest.com.hypestat.com/),爲了獲得統計信息,你查詢的網站作爲一個子域出現在基礎網址中。

有沒有一種方法來製作一個蜘蛛來遍歷整個這些網址,並將它們放在hypestat.com上?

如果有人能指引我走向正確的方向,那會很棒!

回答

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

+0

導致非常感謝你,這是太棒了!幫助我讓我的頭更多一點:) – user3015175