使用 scrapy-splash 会显着影响抓取速度吗? [关闭]
Posted
技术标签:
【中文标题】使用 scrapy-splash 会显着影响抓取速度吗? [关闭]【英文标题】:Does using scrapy-splash significantly affect scraping speed? [closed] 【发布时间】:2018-09-28 05:20:17 【问题描述】:到目前为止,我一直在使用 scrapy 和编写自定义类来处理使用 ajax 的网站。
但是如果我使用scrapy-splash,据我了解,它会在javascript之后抓取渲染的html,我的爬虫的速度会受到很大影响吗?
使用 scrapy 抓取 vanilla html 页面所需的时间与使用 scrapy-splash 抓取 javascript 呈现的 html 所需的时间有什么比较?
最后,scrapy-splash 和 Selenium 相比如何?
【问题讨论】:
【参考方案1】:这取决于页面上的 javascript 数量。
您必须知道,要渲染所有 javascript,splash 需要一些时间,并且 python 应用程序会继续进行,而无需等待渲染完成。所以有时候splash也是做不到的。
您可以显式等待渲染,因为它通常需要一些时间。 另外,提供一些wait
也是一个好习惯。
这里,
import scrapy
from scrapy_splash import SplashRequest
yield scrapy.Request(url, callback=self.parse, meta='splash':'args':'wait':'25','endpoint':'render.html')
或
import scrapy
from scrapy_splash import SplashRequest
yield SplashRequest(url, self.parse, endpoint='render.html',
args='wait': 5, 'html' : 1 )
scrapy 和 selenium 之间
Selenium
仅用于自动化Web浏览器交互,Scrapy
用于下载HTML,处理数据并保存(整个网络爬虫框架)。
谈到抓取,我会推荐scrapy
,如果问题是javascript。
【讨论】:
感谢您回答@Nandesh!这个问题已经结束了,但你的回答涵盖了我所有的重点! @mgrollins 总是 :)以上是关于使用 scrapy-splash 会显着影响抓取速度吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章