Scrapy is written with Twisted, a popular event-driven networking
framework for Python. Thus, it’s implemented using a non-blocking (aka
asynchronous) code for concurrency.
After an item has been scraped by a spider, it is sent to the Item
Pipeline which process it through several components that are executed
sequentially.
刮痧还是个选择。在
速度/性能/效率
数据库流水线
您提到希望将数据通过管道传输到数据库中—正如您所知,Scrapy具有
Item Pipelines
功能:因此,每一页都可以在下载后立即写入数据库。
代码组织
Scrapy为你提供了一个很好的清晰的项目结构,在那里你有设置,蜘蛛,项目,管道等逻辑分离。即便如此,你的代码也会更清晰、更易于支持和理解。
编码时间到了
Scrapy在幕后为你做了很多工作。这将使您专注于实际的代码和逻辑本身,而不是考虑“金属”部分:创建进程、线程等。
但是,同时,发痒可能是一个开销。请记住,Scrapy的设计初衷是爬网,从网页中抓取数据。如果您只想下载一堆页面而不查看它们,那么是的,
grequests
是一个不错的选择。在如果你突然造成高负载,大多数网站所有者会试图阻止你的爬虫。在
因此,即使你有固定的链接列表,你也需要在scray或grab上控制超时、http应答代码、代理等
如果您非常清楚要获取的URL,Scrapy在这里似乎不相关(这里不涉及爬行)。在
想到的最简单的方法是使用^{} 。但是,在一个序列中查询每个URL并在块中等待答案并不是很有效,因此可以考虑使用^{} 异步发送多个请求。在
相关问题 更多 >
编程相关推荐