不需要递归链接搜索就可以尝试目录中的所有ID

2024-04-24 19:59:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们想从一个网页名称是特定范围内整数ID的网站上爬网一个特定目录,例如/book/BOOK_ID其中图书ID是从0到2000000,我不想爬网整个网站,并且没有一个网页包含所有链接。不允许使用搜索页(对于空搜索)或效率低下。所以我们只想迭代该范围内的所有ID,并尝试下载页面,而忽略404错误。你知道吗

但由于Scrapy是非常强大和巨大的,可以处理很多其他事情,我想知道它是否有可能与Scrapy。你知道吗


Tags: 目录名称id网页网站链接错误整数
1条回答
网友
1楼 · 发布于 2024-04-24 19:59:32

是的,这是可能的。使用^{}启动对/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。但是,如果您需要,您可以处理它,请参阅:

相关问题 更多 >