python3学习之Splash的安装与实例教程

时间:2021-05-22

前言

Splash是一个javascript渲染服务。它是一个带有HTTP API的轻量级Web浏览器,使用Twisted和QT5在Python 3中实现。QT反应器用于使服务完全异步,允许通过QT主循环利用webkit并发。

一些Splash功能:

  • 并行处理多个网页
  • 获取HTML源代码或截取屏幕截图
  • 关闭图像或使用Adblock Plus规则使渲染更快
  • 在页面上下文中执行自定义JavaScript
  • 可通过Lua脚本来控制页面的渲染过程
  • 在Splash-Jupyter 笔记本中开发Splash Lua脚本。
  • 以HAR格式获取详细的渲染信息

1、Scrapy-Splash的安装

Scrapy-Splash的安装分为两部分,一个是Splash服务的安装,具体通过Docker来安装服务,运行服务会启动一个Splash服务,通过它的接口来实现JavaScript页面的加载;另外一个是Scrapy-Splash的Python库的安装,安装后就可在Scrapy中使用Splash服务了,下面我们分三部份来安装:

(1)安装Docker

#安装所需要的包:yum install -y yum-utils device-mapper-persistent-data lvm2#设置稳定存储库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#开始安装DOCKER CE:yum install docker-ce#启动dockers:systemctl start docker#测试安装是否正确:docker run hello-world

(2)安装splash服务

通过Docker安装Scrapinghub/splash镜像,然后启动容器,创建splash服务

docker pull scrapinghub/splashdocker run -d -p 8050:8050 scrapinghub/splash#通过浏览器访问8050端口验证安装是否成功

(3)Python包Scrapy-Splash安装

pip3 install scrapy-splash

2、Splash Lua脚本

运行splash服务后,通过web页面访问服务的8050端口如:http://localhost:8050即可看到其web页面,如下图:

上面有个输入框,默认是http://google.com,我们可以换成想要渲染的网页如:https:///Search?keyword=python&page={}&wait=1&images=0'.format(number) response=requests.get(url) data=page_parse(response.text) for i in data: save_to_mongo(i) #print(i)if __name__ == '__main__': for number in range(1,200,2): print('开始抓取第{}页'.format(number)) main(number)

更多内容请查看官方文档:http://splash.readthedocs.io/en/stable/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章