当前位置: 首页 > news >正文

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具体爬取动态网页,见另一篇博文
占坑

http://www.lryc.cn/news/377339.html

相关文章:

  • Function:控制继电器上下电,上电后adb登录,copy配置文件
  • 香港电讯高可用网络助力企业变革金融计算
  • LDR6020一拖二快充线:多设备充电新选择
  • 电脑ffmpeg.dll丢失原因解析,找不到ffmpeg.dll的5种解决方法
  • 手机网站制作软件是哪些
  • 【Kubernetes项目部署】k8s集群+高可用、负载均衡+防火墙
  • IPC工业电脑的现状、发展未来与破局策略
  • 深入了解Redis的TYPE命令
  • iptables(3)规则管理
  • 关于addEventListener的使用和注意项
  • 分享一下,如何搭建个人网站的步骤
  • (7)摄像机和云台
  • MicroBlaze IP核中的外设接口和缓冲器接口介绍
  • Java数据结构与算法(完全背包)
  • git merge(3个模式) 与 git rebase 图文详解区别
  • Eclipse 工作空间:深入解析与高效使用
  • Aspose将doc,ppt转成pdf
  • Flutter第十四弹 抽屉菜单效果
  • Docker Nginx
  • OpenVINO™ 2024.2 发布--推出LLM专属API !服务持续增强,提升AI生成新境界
  • 【Mybatis-Plus】根据自定义注解实现自动加解密
  • Window上ubuntu子系统编译Android
  • 【Java学习笔记】异常处理
  • Ubuntu20.04环境下Baxter机器人开发环境搭建
  • nccl 03 记 回顾:从下载,编译到调试 nccl-test
  • 关于车规级功率器件热可靠性测试的分享
  • 内核学习——1、list_head
  • JavaEE初阶--网络基本概念
  • gitlab-cicd-k8s
  • 盘点下常见 HDFS JournalNode 异常的问题原因和修复方法