Python 爬虫,登陆神器之Selenium简介

我们常常用Selenium来抓取数据,因为可以驱动浏览器,这样节省了我们很多的时间,但其实Selnium的主要功能其实不是用来写爬虫的,所以这篇还是先来介绍下Selenium。

Selenium是什么

Selenium 是一个开源测试框架,用来对web应用(比如网站)做自动化测试用的,因为它可以驱动浏览器,诸如Chrome,Firefox,IE等,所以可以较为真实的模拟人自动去点击网站的各个按钮,翻页,填写表单等,这样节省了很多测试时间。

它是多语言的,不只是Python,还支持Java,C#,Ruby等等。

被应用于解决爬虫技术问题,是一个巧合,一个完美巧合。

Selenium为爬虫解决什么问题

写爬虫比较繁琐的几个地方:

一是登陆,二是异步加载,三是JS内容混淆。

因为Selenium是直接运行在浏览器上,它会自动根据你的程序设定去操作浏览器,所以它能自动把账号填入到登陆框里,自动点击登陆按钮,完成登陆,不需要你千辛万苦的去研究登陆加密过程。

像有些网站,当你的鼠标向下拖动时,下面的内容才会加载出来,你可以让Selenium自动让鼠标向下拖动,让它加载内容,不用再去分析Ajax。

JS内容混淆是比较头痛的,有些网站的html源代码文字内容可能是一大串你看不懂的乱码,在浏览器里能正确显示,你抓出来的html是乱码,这就可能是网站通过JS把内容混淆了,如果你有了Selenium几不用愁这个问题。

Selenium能干什么事情呢?总结一句就是:

你人用浏览器能干什么,Selenium基本就能干什么。

Selenium的缺点

上面把Selenium吹的神了,那它的缺点是什么呢?

主要是慢,用它来抓数据是真慢,加载的时候慢,打开页面时也慢,等它把页面资源加载完了,要好几秒,抓一个页面估计要10秒左右。

所以你对抓取效率要求高的话,就要想别的办法。

但这也带来了一个好处,就是这样是完全模拟人的行为,所以对方网站不易发现你是爬虫。

另一个缺点就是不太稳定,从老猿的使用情况来看,长时间运行会异常退出,所以要处理好容错。

也有可能是driver版本不对应的问题引起,它的版本对应让我也有点头晕。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190529A0EFC200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券