Scrapy-Splash是一个Scrapy中支持JavaScript渲染的工具,本节来介绍它的安装方式。

Scrapy-Splash的安装分为两部分。一个是Splash服务的安装,具体是通过Docker,安装之后,会启动一个Splash服务,我们可以通过它的接口来实现JavaScript页面的加载。另外一个是Scrapy-Splash的Python库的安装,安装之后即可在Scrapy中使用Splash服务。

1. 相关链接

2. 安装Splash

Scrapy-Splash会使用Splash的HTTP API进行页面渲染,所以我们需要安装Splash来提供渲染服务。这里通过Docker安装,在这之前请确保已经正确安装好了Docker。

安装命令如下:

 
 
1
docker run -p 8050:8050 scrapinghub/splash

安装完成之后,会有类似的输出结果:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2017-07-03 08:53:28+0000 [-] Log opened.
2017-07-03 08:53:28.447291 [-] Splash version: 3.0
2017-07-03 08:53:28.452698 [-] Qt 5.9.1, PyQt 5.9, WebKit 602.1, sip 4.19.3, Twisted 16.1.1, Lua 5.2
2017-07-03 08:53:28.453120 [-] Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609]
2017-07-03 08:53:28.453676 [-] Open files limit: 1048576
2017-07-03 08:53:28.454258 [-] Can't bump open files limit
2017-07-03 08:53:28.571306 [-] Xvfb is started: ['Xvfb', ':1599197258', '-screen', '0', '1024x768x24', '-nolisten', 'tcp']
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
2017-07-03 08:53:29.041973 [-] proxy profiles support is enabled, proxy profiles path: /etc/splash/proxy-profiles
2017-07-03 08:53:29.315445 [-] verbosity=1
2017-07-03 08:53:29.315629 [-] slots=50
2017-07-03 08:53:29.315712 [-] argument_cache_max_entries=500
2017-07-03 08:53:29.316564 [-] Web UI: enabled, Lua: enabled (sandbox: enabled)
2017-07-03 08:53:29.317614 [-] Site starting on 8050
2017-07-03 08:53:29.317801 [-] Starting factory <twisted.web.server.Site object at 0x7ffaa4a98cf8>

这样就证明Splash已经在8050端口上运行了。这时我们打开http://localhost:8050,即可看到Splash的主页,如图1-80所示。

图1-80 运行页面

当然,Splash也可以直接安装在远程服务器上。我们在服务器上以守护态运行Splash即可,命令如下:

 
 
1
docker run -d -p 8050:8050 scrapinghub/splash

这里多了-d参数,它代表将Docker容器以守护态运行,这样在中断远程服务器连接后,不会终止Splash服务的运行。

3. Scrapy-Splash的安装

成功安装Splash之后,接下来再来安装其Python库,命令如下:

 
 
1
pip3 install scrapy-splash

命令运行完毕后,就会成功安装好此库,后面会详细介绍它的用法。

最新文章

  1. git push :推送本地更改到远程仓库的三种模式
  2. Makecert.exe(证书创建工具)
  3. MySQL DELETE 表别名问题
  4. jquery获取所有选中的checkbox的ID
  5. 从零开始学ios开发(十六):Navigation Controllers and Table Views(下)
  6. Ubuntu 14.04 LTS 与Kylin
  7. ORACLE的sign函数和DECODE函数
  8. 生产项目加入到SVN版本控制
  9. 学习使用React Native的心得体会
  10. 浓缩的才是精华:浅析GIF格式图片的存储和压缩
  11. Exploit-Exercises nebule 旅行日志(一)
  12. docker、oci、runc以及kubernetes梳理
  13. Idea快捷键和使用技巧【未完】
  14. 基于token与基于服务器的身份认证
  15. centos6.5环境wget报错Unable to establish SSL connection
  16. SpringMVC 源码分析
  17. HDU - 1525
  18. 异构GoldenGate 12c 单向复制配置(支持DDL复制)
  19. loop设备及losetup命令
  20. Eclipse使用前准备(转)

热门文章

  1. 不让浏览器缓存input的值
  2. 初学者的疑惑,到底什么是javaBean?
  3. Luogu P1073 最优贸易【最短路/建反图】 By cellur925
  4. python之排序算法-冒泡、选排、快排
  5. [ZOJ1140]Courses 课程
  6. 转-CoreText 使用教程
  7. Snort里如何将读取的包记录存到指定的目录下(图文详解)
  8. poj1781In Danger(约瑟夫) 问题
  9. javaScript关闭浏览器 (不弹出提示框)
  10. AJPFX总结Socket的低层次Java网络编程