scrapy_splash-一个JavaScript渲染服务
时间:2023-3-1 19:15 作者:wen 分类: Python
一、什么是scrapy_splash?
scrapy_splash是scrapy的一个组件
- scrapy_splash加载js数据是基于Splash来实现的。
- Splash是一个JavaScript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建。
- 使用scrapy_splash最终拿到的response相当于是在浏览器全部渲染完成以后的网页源代码。
二、scrapy_splash的作用
scrapy_splash能够模拟浏览器加载js,并放回js运行后的数据
三、scrapy_splash的环境安装
1、使用splash的docker镜像
splash的dockerfile https://github.com/scrapinghub/splash/blob/master/Dockerfile
观察发现splash依赖环境略微复杂,所以我们可以直接使用splash的docker镜像
如果不使用docker镜像请参考splash官方文档安装相应的依赖环境
- 安装并启动docker服务
安装参考 :https://blog.csdn.net/sanpic/article/details/81984683 - 获取splash的镜像
在正确安装docker的基础上pull取splash的镜像
sudo docker pull scrapinghub/splash
- 验证是否安装成功
运行splash的docker服务,并通过浏览器访问8050端口验证安装是否成功- 前端运行
sudo docker run -p 8050:8050 scrapinghub/splash
- 后端运行
sudo docker run -d -p 8050:8050 scrapinghub/splash
- 前端运行
访问http://127.0.0.1:8050看到如下截图内容表示成功
四、在scrapy中使用splash
1、创建项目创建爬虫
scrapy startproject baidu
cd baidu
scrapy genspider no_splash baidu.com
scrapy genspider with_splash baidu.com
2、完善setting.py配置文件
标签: 爬虫