Scrapy爬虫爬取books.toscrape.com未抓取页面,请问问题出在哪?
问题分析与解决
你的爬虫存在两个关键问题,导致爬取结果为0页:
1. allowed_domains拼写错误
代码里的allowed_domains = ["tosrape.com"]存在拼写错误,少了字母c,正确的允许域名应为toscrape.com(或更精确的books.toscrape.com)。日志中Filtered offsite request to 'books.toscrape.com'的提示,正是因为设置的允许域名和实际请求的域名不匹配,Scrapy的OffsiteMiddleware直接过滤了这些跨域请求。
修正后的代码:
allowed_domains = ["toscrape.com"]
2. Rule参数优化(可选)
当前Rule仅提取链接,虽然默认无callback时follow会自动设为True,但显式设置follow=True能让逻辑更清晰,确保爬虫会跟进提取到的分类链接:
rules = ( Rule(LinkExtractor(allow="catalogue/category"), follow=True), )
修正上述问题后,爬虫即可正常爬取符合规则的页面,日志中的爬取页数会相应增加。
内容的提问来源于stack exchange,提问作者Talkhak1313
相关产品推荐
相关产品推荐

