爬虫模块:beautifulsoup4
scrapy_splash:
pip install scrapy_splash
scrapy_splash模块,与selenium类似,用来获取js渲染后的html页面
scrapy-splash模块主要使用了Splash. 所谓的Splash, 就是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。
scrapy-splash使用的是Splash HTTP API, 所以需要一个splash instance,一般采用docker运行splash,所以需要安装docker。
安装好docker后:
拉取镜像:sudo dock pull scrapinghub/splash
然后创建容器:sudo docker run -p 8050:8050 scrapinghub/splash
验证是否安装成功:Splash运行在本地服务器的端口8050(http).在浏览器中输入'localhost:8050'测试
框架中的Request更换为SplashRequest,html就会通过splash服务获取
SplashRequest(url=url, callback=self.parse,argsargs,endpoint='render.html')