为什么要学习Splash?
我们经常使用scrapy框架编写爬虫代码,站在巨人的肩膀上感觉很好,但是一旦遇到网站用JavaScript动态渲染,scrapy就显得有些力不从心了,我们了解的selenium可以完成动态加载,返回浏览器渲染后的页面,今天我们不讲selenium,Scrapy-Splash(是一个Scrapy中支持JavaScript渲染的工具)同样可以完成这件事,下面我们来说说Splash如何与Scrapy进行对接。
官方文档:https://splash.readthedocs.io/en/stable/
准备工作
- 安装:https://splash.readthedocs.io/en/stable/install.html
Scrapy-Splash 会使用Splash的HTTP API 进行页面渲染,所以我们需要安装Splash,这里需要通过Docker安装
Linux + Docker
- Install Docker
- Pull the image:
sudo docker pull scrapinghub/splash
- Start the container:
sudo docker run -it -p 8050:8050 scrapinghub/splash
OS X + Docker
-
Install Docker for Mac (see https://docs.docker.com/docker-for-mac/).
-
Pull the image:
docker pull scrapinghub/splash
- Start the container:
docker run -it -p 8050:8050 scrapinghub/splash
运行完毕后在浏览器中打开地址:http://0.0.0.0:8050 出现如下界面
安装scrapy-splash
pip3 install scrapy-splash