到目前为止,我一直在使用scrapy并编写自定义类来处理使用ajax的网站。
但是,如果我使用scrapy-splash,根据我的理解,在javascript之后擦除渲染的html,我的爬虫的速度会受到显着影响吗?
使用scrapy-splash刮擦带有scrapy和javascript呈现的html的香草html页面所需的时间之间的比较是什么?
最后,scrapy-splash和Selenium如何比较?
答案 0 :(得分:6)
这取决于页面上存在的javascript数量。
你必须知道要渲染所有的javascript,启动需要一些时间并且python应用程序继续进行而不等待渲染完成。所以有时飞溅也无法做到。
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 } )
Selenium
仅用于自动化网络浏览器互动,Scrapy
用于下载HTML,处理数据并保存(整个网络抓取框架)。
谈论抓取我会推荐scrapy
,如果问题是javascript。