0

すでに修正されているクロムのバグのリストをかき集めようとしています。1ページ目と2ページ目は動くのですが、なぜか3ページ目で止まってしまいます。setting.py で DEPTH_LIMIT = 1 を設定しました。これは、おそらくスクレイピングできるデータの量を制限する chrome ポリシーに関連していますか? 前もって感謝します!

class MySpider(CrawlSpider):
    name = "craig"
    start_urls = ["http://code.google.com/p/chromium/issues/list?can=1&q=status%3Afixed&sort=&groupby=&colspec=ID+Pri+M+Iteration+ReleaseBlock+Cr+Status+Owner+Summary+OS+Modified+Type+Priority+Milestone+Attachments+Stars+Opened+Closed+BlockedOn+Blocking+Blocked+MergedInto+Reporter+Cc+Project+Os+Mstone+Releaseblock+Build+Size+Restrict+Security_severity+Security_impact+Area+Stability+Not+Crash+Internals+Movedfrom+Okr+Review+Taskforce+Valgrind+Channel+3rd"]

    rules = (
        Rule(SgmlLinkExtractor(restrict_xpaths=('//a[starts-with(., "Next")]/@href'))),
        Rule(SgmlLinkExtractor(allow=("status%3Afixed",), deny=("detail?",)), callback="parse_items", follow=True)

    )

    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        table = hxs.select("//table[@id='resultstable']")

    items = []

        count = 1
        for count in range(1,100):
            row = table.select("tr[" + str(count) + "][@class='ifOpened cursor_off']")  
        item = CraiglistSampleItem()

        item["summary"] = row.select("td[@class='vt col_8'][2]/a/text()").extract()     
        item["summary"] = str(item["summary"][0].encode("ascii","ignore")).strip()

        item["id"] = row.select("td[@class='vt id col_0']/a/text()").extract()      
        item["id"] = str(item["id"][0].encode("ascii","ignore")).strip()

        print item["summary"]
            count = count + 1
            items.append(item)

        return(items)
4

1 に答える 1

0

まあ、それは何をするかDEPTH_LIMIT = 1です。3 番目のページは深さ 2 であるため、クロールされません。設定DEPTH_LIMIT = 0すると、クローラーが機能します。

于 2013-09-08T16:55:43.960 に答える