selenium+phantomJS爬虫,适用于登陆限制强,点触验证码等一些场景

selenium是很出名的自动化测试工具,多数场景是测试工程师用来做自动化测试,但是同样selenium可以作为基本上模拟浏览器的工具,去爬取一些基于http request不能或者很复杂的才能爬取的站点,而且交互式脚本(如:python) + selenium可以直接看到浏览器的执行过程,利于debug,同时看上去比较有成就感。

贴个实例吧

firefoxProfile = FirefoxProfile()
# Disable images
firefoxProfile.set_preference('permissions.default.image', 2)
#Disable Flash
firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so','false')

#firefox, chrome, phantomjs
driver = webdriver.Firefox(firefoxProfile)
#login
driver.get("https://www.facebook.com/")
inputEmail = driver.find_element_by_id("email")
inputEmail.send_keys("useruseruseruser")
inputPass = driver.find_element_by_id("pass")
inputPass.send_keys("pwpwpwpwpw")
inputPass.submit()

driver.get("https://www.facebook.com/blablabla" % (page))
driver.execute_script("alert('execute js')")

driver.quit()

配合pyvirtualdisplay可以在后台执行,博友可自行查找其用法

同样selenium做爬虫的缺点也是很明显的:

  1. 慢,异乎寻常的慢(单个请求,加载的东西实在是太多了,对多线程也是极不友好的);
  2. 很吃电脑资源(CPU,网络,内存都是一个很大的挑战);
  3. 爬取规模不能太大
  4. 。。。。

所以,适用于那些难搞定的小网站,需要登陆的,点触式验证码啊等等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值