«

scrapy_splash-一个JavaScript渲染服务

时间:2023-3-1 19:15     作者:wen     分类: Python


一、什么是scrapy_splash?

scrapy_splash是scrapy的一个组件

  1. scrapy_splash加载js数据是基于Splash来实现的。
  2. Splash是一个JavaScript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建。
  3. 使用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官方文档安装相应的依赖环境

  1. 安装并启动docker服务
    安装参考 :https://blog.csdn.net/sanpic/article/details/81984683
  2. 获取splash的镜像
    在正确安装docker的基础上pull取splash的镜像
    sudo docker pull scrapinghub/splash
  3. 验证是否安装成功
    运行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配置文件

标签: 爬虫