人生若只如初见,何必找包爬数据

浏览: 1325

爬虫最头疼的就是异步加载和模拟登陆了,我们不禁感慨,要是全部数据都在源代码,那该有多好啊!那今天就讲解下利用Selenium模拟浏览器,让异步加载的东西原形毕露。

Selenium

Selenium是一套完整的Web应用程序测试系统,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。通过pip安装即可。

pip3 install selenium

PhantomJS

在网络爬虫中,主要运用Selenium的Webdriver模块,Webdriver没有浏览器,我们需要选择浏览器,这里选择“无头”的PhantomJS,无头就是没有界面,这就意味着开支小,速度快。我们去官网下载(这里网速不行,需要翻墙)。


最后,要把PhantomJS添加到环境变量,因为Python是加入了环境变量,所以把PhantomJS拷贝到Python同个文件夹下。

豆瓣登陆

先上代码

from selenium import webdriver
driver = webdriver.PhantomJS()#实例化请求头
driver.get('https://www.douban.com/')#请求网站
driver.implicitly_wait(10)#隐式等待
driver.find_element_by_id('form_email').clear()
driver.find_element_by_id('form_email').send_keys('账号')#输入账号
driver.find_element_by_id('form_password').clear()
driver.find_element_by_id('form_password').send_keys('密码')#输入密码
driver.find_element_by_class_name('bn-submit').click()#登陆
print(driver.page_source)#打印源代码

看看网页源代码,可以看到我已经登陆成功了。


Selenium有个致命的缺陷,就是慢!!!所以人生无常,相见不如不见。

推荐 0
本文由 罗罗攀 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册