以下链接,Scrapy 网络爬虫框架
在阅读了几次 Scrapy 文档之后,我仍然没有意识到使用 CrawlSpider 规则和在回调方法上实现我自己的链接提取机制之间的区别。
我即将使用后一种方法编写一个新的网络爬虫,但只是因为我在过去使用规则的项目中经历了不好的经历。我真的很想知道我在做什么以及为什么。
有人熟悉这个工具吗?
感谢您的帮助!
After several readings to Scrapy docs I'm still not catching the diferrence between using CrawlSpider rules and implementing my own link extraction mechanism on the callback method.
I'm about to write a new web crawler using the latter approach, but just becuase I had a bad experience in a past project using rules. I'd really like to know exactly what I'm doing and why.
Anyone familiar with this tool?
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CrawlSpider继承了BaseSpider。它只是添加了提取和跟踪链接的规则。
如果这些规则对您来说不够灵活 - 使用 BaseSpider:
即使 BaseSpider 的 start_url 对您来说不够灵活,也可以覆盖 start_requests 方法。
CrawlSpider inherits BaseSpider. It just added rules to extract and follow links.
If these rules are not enough flexible for you - use BaseSpider:
Even if BaseSpider's start_urls are not enough flexible for you, override start_requests method.
如果您想要选择性爬行,例如获取分页的“下一个”链接等,最好编写自己的爬行器。但对于一般的爬行,您应该使用crawlspider并使用Rules & 过滤掉不需要遵循的链接。 process_links 函数。
看一下
\scrapy\contrib\spiders\crawl.py
中的crawlspider代码,它并不太复杂。If you want selective crawling, like fetching "Next" links for pagination etc., it's better to write your own crawler. But for general crawling, you should use crawlspider and filter out the links that you don't need to follow using Rules & process_links function.
Take a look at the crawlspider code in
\scrapy\contrib\spiders\crawl.py
, it isn't too complicated.