Scrapy是一个用于网络爬虫的Python框架,它提供了多种爬虫类型,其中CrawlSpider是一种基于规则的爬虫。如果你发现CrawlSpider没有执行你的回调函数,可能是以下几个原因造成的:
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class MyCrawlSpider(CrawlSpider):
name = 'mycrawlspider'
allowed_domains = ['example.com']
start_urls = ['http://example.com']
rules = (
Rule(LinkExtractor(allow=('/page/\d+', )), callback='parse_item'),
)
def parse_item(self, response):
# 解析逻辑
pass
settings.py
文件中的DUPEFILTER_CLASS
设置,确保不是因为重复请求被过滤。解决步骤:
settings.py
文件中的过滤器设置。参考链接:
如果以上步骤都无法解决问题,可以尝试创建一个最简单的CrawlSpider示例,逐步添加你的逻辑,以确定问题出现的具体位置。
领取专属 10元无门槛券
手把手带您无忧上云