【发布时间】:2017-06-21 03:07:00
【问题描述】:
网址:
- http://www.extrastores.com/en-sa/products/mobiles/smartphones-99500240157?page=1
- http://www.extrastores.com/en-sa/products/mobiles/smartphones-99500240157?page=2 是独一无二的,但scrapy 将这些 url 过滤为重复而不是抓取它们。
我正在使用具有以下规则的 CrawlSpider:
rules = (
Rule(LinkExtractor(restrict_css=('.resultspagenum'))),
Rule(LinkExtractor(allow=('\/mobiles\/smartphones\/[a-zA-Z0-9_.-]*',), ), callback='parse_product'),
)`
我不明白这种行为,有人可以解释一下吗?上周,相同的代码正在运行。 使用 Scrapy 1.3.0 版
【问题讨论】:
-
你确定他们还没有被访问过吗?
-
是的,整个网站都没有被废弃。所有链接都被过滤掉了。
-
可能链接被抓取,但页面上没有数据?
-
我可以在 shell 中下载/抓取单个链接的数据,上述链接在 scrapy shell 中工作正常。
-
我建议你分享你的爬取日志,也许你的蜘蛛也是如此。默认指纹函数为您的 2 个示例 URL 生成不同的指纹。所以scrapy不应该过滤所有
page=<digit>,因为它们已经被提取了,所以它正在过滤它们。如果没有带有LOG_LEVEL='DEBUG'或代码或两者兼有的日志,就不能说更多了。
标签: python scrapy scrapy-spider