phantomjs+selenium实现爬取动态网址

之前使用 selenium + firefox驱动浏览器来实现爬取动态网址,但是firefox经常更新,更新后时常会导致webdriver启动不来,所以改用phantomjs+selenium来改善一下。
使用phantomjs和使用浏览器区别并不大。

一,首先还是需要下载Phantomjs

Phantomjs对各个主流的平台都支持,下载页面。选择好存放的目录,例如D:\phantomjs。
phantomjs的可执行文件就在bin目录下,可以将D:\phantomjs\bin目录加入环境变量中。如果不加入环境变量,那么selenium在驱动phantomjs时就需要指定路径。

二,在Selenium中驱动Phantomjs

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

##可以对phantomjs配置
#cap = webdriver.DesiredCapabilities.PHANTOMJS    #获取webdriver对Phantomjs的默认配置
#cap["phantomjs.page.settings.resourceTimeout"] = 5000    #资源加载超时时长
#cap["phantomjs.page.settings.loadImages"] = False    #是否加载图片
#driver = webdriver.PhantomJS(desired_capabilities=cap)

#未将phantomjs加入环境变量,需要指定phantomjs的路径
#driver = webdriver.PhantomJS(executable_path="D:\phantomjs\bin\phantomjs.exe")
driver = webdriver.PhantomJS()
driver.set_page_load_timeout(5)    #设置页面超时时长
#driver.set_script_timeout(5)    #设置页面JS超时时长,这两者超时后会报TimeoutException错

##当超时后停止页面的加载
##有些页面在加载出你想要的数据后,还是会一直加载一些其他资源
tru:
    driver.get("www.tvmao.com")
exception TimeoutException:
    driver.execute_script("window.stop()")

##获取网页源代码后,就可以将其保存起来进而进行数据解析了
page_source = driver.page_source()

############
#
#数据解析部分
#
############

phantomjs可配置的选项,可以看官方文档说明

转载于:https://www.cnblogs.com/bencakes/p/5971859.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值