十. 爬取动态页面 - splash的使用

2018-03-13  本文已影响0人  橄榄的世界

使用 scrapy+ splash 爬取动态页面。

1.splash的安装

①splash的安装可参考这篇文章:https://www.jianshu.com/p/4052926bc12c

②由于是Win7系统,安装Docker ToolBox。


③安装完成后,以管理员身份运行“Docker Quickstart Terminal”。


④下载并安装secureCRT:在连接对话框输入docker的地址:默认是192.168.99.100,上面的图里看得见:),用户名:docker,密码:tcuser。

⑤在Docker中安装splash服务:
sudo docker pull scrapinghub/splash

⑥启动splash服务(通常一般使用http模式 ,可以只启动一个8050端口)
sudo docker run -p 8050:8050 -p 8051:8051 scrapinghub/splash

#Splash 将运行在 0.0.0.0 at ports 8050 (http), 8051 (https) and 5023 (telnet)。
sudo docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash

⑦服务启动后,打开浏览器输入192.168.99.100:8050查看服务启动情况。输入[www.baidu.com],点击Render me 按钮,立马可以看见在服务器端渲染后的百度页面。

image.png
2.splash与python的搭配使用
import requests
from scrapy.selector import Selector
##注意使用了192.168.99.100来替代localhost,因为localhost在win7中默认为172.0.0.1.
splash_url ="http://192.168.99.100:8050/render.html"  
args= {'url':'http://quotes.toscrape.com/js','timeout':5,'image':0}
response = requests.get(splash_url,params=args)
sel = Selector(response)
sel.css('div.quote span.text::text').extract()

使用上述代码即可获取JS加载的信息,结果为:


splash最常用的两个端点:

上一篇下一篇

猜你喜欢

热点阅读