Ubuntu20.04 使用scrapy-splash爬取动态网页

我们要先安装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服务,使用命令

复制代码
docker run -d -p 0.0.0.0:yyyy:8050 scrapinghub/splash

其中,yyyy代表端口号。重要的两点切记

6.1ufw暴露该端口

6.2. 如果是云服务器,很多厂商会设置安全组,请前往服务器控制中心,暴露yyyy端口

6.3 8050是splash服务默认窗口,更改的办法应该是进入docker容器内部,改动配置文件才可以变更。所以在指定端口时候不要动8050,答应我好吗?就因为这个,我查了一天的问题,一天啊整整一天!!!!!!!!!!!!!!!!!!!!!!这个问题对世界基本毫无意义,但是请相信它对我太有意义了,虽然我改正之后正确的访问了splash服务,没改变什么,但是我好开心!!!再说一遍,我好开心。

7.反思:

命令的每个参数最好都搞清楚意义

8.因为splash其实是一个scrapy框架的插件scrapy-splah要用的服务,因此,我们要学习三个东西,包括splash的使用、scrapy的使用、以及用python操纵splash的插件scrapy-splash的使用。

splash的学习

占坑

scrapy的学习

老办法,我们从官方文档开始。
https://doc.scrapy.org/en/latest/intro/tutorial.html

占坑

scrapy-splash具体爬取动态网页,见另一篇博文

占坑

相关推荐
*才华有限公司*3 天前
用Scrapyd爬取豆瓣图书Top250
scrapy
深蓝电商API6 天前
Scrapy源码剖析:下载器中间件是如何工作的?
爬虫·scrapy
深蓝电商API9 天前
解析器的抉择:parsel vs lxml,在 Scrapy 中如何做出最佳选择?
scrapy·lxml·parsel
小白学大数据14 天前
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
运维·爬虫·scrapy·自动化
深蓝电商API14 天前
爬虫性能压榨艺术:深入剖析 Scrapy 内核与中间件优化
爬虫·scrapy
B站_计算机毕业设计之家24 天前
python舆情分析可视化系统 情感分析 微博 爬虫 scrapy爬虫技术 朴素贝叶斯分类算法大数据 计算机✅
大数据·爬虫·python·scrapy·数据分析·1024程序员节·舆情分析
深兰科技24 天前
深兰科技法务大模型亮相,推动律所文书处理智能化
人工智能·scrapy·beautifulsoup·scikit-learn·pyqt·fastapi·深兰科技
龙腾AI白云1 个月前
大模型-7种大模型微调方法 上
scrapy·scikit-learn·pyqt
万粉变现经纪人1 个月前
如何解决 pip install -r requirements.txt 子目录可编辑安装缺少 pyproject.toml 问题
开发语言·python·scrapy·beautifulsoup·scikit-learn·matplotlib·pip
万粉变现经纪人1 个月前
如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip