使用Selenium做爬虫小记

  以往,写爬虫的思路一般是用curl,urllib(python)或,HttpComponents(java)等发起request,然后读取response,用xpath,或者类js操作dom的方式获取需要的数据。

  然而当遇到那种将数据藏在js里面的情况,比如sina weibo中,好友信息都是放在script节点里,由js在client端动态append到页面上,如果要获取这种数据,那只有使用正则表达式了。

  直到我发现了个叫Selenium的自动化测试框架。可以通过程序启动,控制浏览器的行为。让我省去了写正则的时间。但缺点是框架非常重,效率很低。(毕竟他原本是用来做自动化测试的。。)

  然而最近有一个需求,需要截取浏览器上的ajax请求。因为ajax请求是js发起的。我有2种方法。

1,读前台js代码,根据需要自己拼出想要的请求。(这方法针对没有加密过的js,和简单的需求适用)

2,用selenium启动浏览器,(我这里用chrome),然后写chrome插件,(chrome 有个API可以对request进行过滤。https://developer.chrome.com/extensions/webRequest.html  )截获指定的request。然后将此url,append到前台页面。

3,用selenium获取插件append的节点。捕获请求。

 

附,此方法适用于那种 对request的时间要求及频度不太高的情况。或者说 request相对来说不会成为瓶颈的情况。比如用此方法捕获xx视频网站的真实地址xxx.flv xxx.mp4 ,此时下载视频的耗时必定远远大于用selenium获取视频地址的时间。此时相当适合啊。。

 

 

转载于:https://www.cnblogs.com/Lelpuchcr/p/3266800.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值