人生若只如初见,何必找包爬数据SeleniumPhantomJS豆瓣登陆

爬虫最头疼的就是异步加载和模拟登陆了,我们不禁感慨,要是全部数据都在源代码,那该有多好啊!那今天就讲解下利用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 条评论
登录 后参与评论

相关文章

来自专栏更流畅、简洁的软件开发方式

【开源】QuickPager ASP.NET2.0分页控件——使用示例、基本应用和查询功能

    myPage分页控件发出来之后,虽然开源了,但是没有给一个简单一点的 demo,真是漏掉了一个很重要的部分。     先说明一下使用myPage分页...

21110
来自专栏葡萄城控件技术团队

一个Web页面的问题分析

几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能。在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的...

1889
来自专栏张戈的专栏

原创插件:WordPress博客友好对话框+文章随机推荐滚动条插件(附代码版)

双 11 光棍节,我在博客发布了一篇给博客部署一个友好对话框的教程,用了几天感觉非常不错!就进一步折腾了一下,目前这个 js 已实现以下多种功能: 一、功能描述...

41712
来自专栏小尘哥的专栏

thymeleaf中使用layui

头部引入css,尾部引入js,定义两个模板(一个也可以,里面的碎片分开写,我喜欢写两个分别引入),注意th:fragment,fragment即碎片,可以在模板...

1416
来自专栏数据结构笔记

python爬虫系列之 xpath实战:批量下载壁纸

我们要爬取的目标网站是:http://www.netbian.com/,这个网站长这样:

1834
来自专栏Google Dart

AngularDart4.0 指南-体系结构概述 顶

AngularDart(我们通常在这个文档中简单地称为Angular)是一个框架,用于在HTML和Dart中构建客户端应用程序。它是作为Angular包发布的,...

573
来自专栏较真的前端

使用神器eruda 进行移动端调试

2133
来自专栏向治洪

Vue.js快速入门

Vue.js简介 Vue.js(读音 /vjuː/, 类似于view)是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设...

2229
来自专栏快乐八哥

Windows8异步编程的注意事项

Windows8 App开发中涉及到下载数据和上传数据。针对小的数据使用的是WinJS.xhr(),而针对大的文件,不方便使用post方式直接上传的文件都使用B...

19510
来自专栏流柯技术学院

PhantomJS快速入门

本文简要介绍了PhantomJS的相关基础知识点,主要包括PhantomJS的介绍、下载与安装、HelloWorld程序、核心模块介绍等。由于鄙人才疏学浅,难免...

1892

扫码关注云+社区