Scrapy - 在没有递归链接搜索的情况下尝试目录中的所有ID

时间:2015-01-11 06:55:19

标签: python web-scraping scrapy web-crawler

假设我们要从网站抓取特定目录,其中网页名称是特定范围内的整数ID,例如/book/BOOK_ID其中BOOK_ID为0到2,000,000,我不想抓取整个网站,没有包含所有链接的单个页面。不允许使用搜索页面(对于空搜索)或效率低下。因此,我们只想迭代该范围内的所有ID,并尝试下载页面,并忽略404错误。

但是,由于Scrapy非常强大而且处理了很多其他事情,我想知道Scrapy是否可以使用Scrapy。

1 个答案:

答案 0 :(得分:1)

是的,有可能。使用start_requests()启动/book/BOOK_ID页面的请求:

def start_requests(self):
    for book_id in xrange(1, 20000000):
        yield Request('https://my_site.com/book/{book_id}'.format(book_id=book_id),
                      callback=self.parse_book)

def parse_book(self, response):
    # parse the response

此外,Scrapy默认忽略404。但是,如果您需要,您可以处理它,请参阅: