我们要先安装splash服务,使用dock安装,如果dock没有安装,请参考我的上一篇博文:
按照官方文档:https://splash.readthedocs.io/en/stable/install.html
1.下载splash
sudo docker pull scrapinghub/splash
2.安装scrapy,它是python的包,我们用包管理器安装:
pip3 install scrapy
3.创建scrapy项目,神似与django
scrapy startproject baiduSpider
其中报错了
cannot import name 'PseudoElement' from 'cssselect.parser'
是因为版本不兼容的原因,直接用下面的命令升级到新版尝试解决
pip3 install --upgrade cssselect
最后,尝试成功,解决了依赖。
4.按照scrapy-splash模块,按照官方文档安装:
https://pypi.org/project/scrapy-splash/
pip3 install scrapy-splash
在这里,我指定了pip3,怕弄混淆。
5.后台运行Splash服务
docker run -d -p 8050:8050 scrapinghub/splash
因为用到是8050端口,可以使用如下程序,查到进程
sudo lsof -i :8050
再用kill,结束进程用来释放端口。
若要重新用docker在8050端口启动进程,请重启docker服务,来更新状态。
systemctl restart docker
6.因为splash其实是一个scrapy框架的插件scrapy-splah要用的服务,因此在我们学习插件的用法之前,我们有必要学习一下简单的scrapy框架的知识了。老办法,我们从官方文档开始。
https://doc.scrapy.org/en/latest/intro/tutorial.html
具体的学习见一篇博文
占坑
具体爬取动态网页,见另一篇博文
占坑