2013-12-17 34 views
0

我正在使用Scrapy刮掉以下網站的帖子。我寫了代碼,將給我的max_id或最新的帖子號碼。例如,對於http://papa-gen.livejournal.com/:如果我理論上有max_id,我將能夠通過max_id創建for循環1,並且我應該能夠刪除所有帖子。訪問網頁上的上一個和下一個箭頭

問題是,沒有像max_id那樣多的帖子。例如,上面的網站的max_id是12月17日發佈的2870789,但是12月16日發佈的帖子的數量是2870614,相差175。如果我遍歷所有的2870789,我會到達每個帖子,但是代碼當然不會非常有效。我的想法是使用我的Python代碼訪問網站上的前一個和前進按鈕,並以這種方式循環。

有人可以解釋我可以如何使用Scrapy完成此操作嗎?

+0

您可以使用正則表達式來設置遵循哪些鏈接的規則 – dm03514

回答

2

Scrapy有extensive documentation。有使用CrawlSpider類來完成你所描述的東西,你可以修改這個樣子的an example ...

class MySpider(CrawlSpider): 
    name = 'livejournal.com' 
    allowed_domains = ['livejournal.com'] 
    start_urls = ['http://www.papa-gen.livejournal.com'] 

    rules = (
     Rule(SgmlLinkExtractor(allow=('skip=',)), callback='parse_item'), 
    ) 

    def parse_item(self, response): 
     # here is where the parsing happens 
     pass 

的基本思想是指定匹配鏈接的規則。 Scrapy將它們添加到要訪問的url列表中,然後在獲取url時使用頁面數據調用callback函數。

相關問題