和vvv 发表于 2017-9-19 15:26:39

44 CSDN博客模拟登录(selenium实现)续

本帖最后由 和vvv 于 2017-9-19 15:37 编辑

44 CSDN博客模拟登录(selenium实现)续
(1)selenium简介

利用selenium模块的相关功能,我们能够模拟用户在浏览器中的操作行为。比如输入关键词、点击、拖动滚动条等。本文使用其来进行模拟登陆。众所周知,利用爬虫模拟登陆网站需要进行复杂而且比较麻烦的抓包分析。但是,利用selenium,不必如此。

(2)selenium模拟登陆CSDN博客

登录页面URL:https://passport.csdn.net/account/login?ref=toolbar。

现在回想一下我们手动登录的过程:1、输入帐号 。 2、输入密码。3、点击登录按钮。现在用代码实现这个过程。

1、爬取登录界面from selenium import webdriver

//创建一个浏览器
browser = webdriver.PhantomJS()

//爬取登陆界面
browser.get('https://passport.csdn.net/account/login?ref=toolbar')
//获取登陆界面截图
browser.get_screenshot_as_file("./picture/screen.jpg")到对应的位置我们会看到这样的图片:


2、帐号和密码信息的填写

首先我们要定位到账号和密码信息填写框。打开登陆界面,按“F12”,选择定位元素,这样:





然后找到帐号输入框,这样:





然后在右边的选中区右键,选择“Copy Xpath”(本人使用的360浏览器,其他可能略有不同)。这样:





往输入框中填入输入账号信息,因此可以使用selenium模块的这条语句:

//使用xpath表达式定位,表达式就是刚才复制的
user = browser.find_element_by_xpath('//*[@id="username"]')
user.send_keys('帐号***')同样可以填入密码信息:password = browser.find_element_by_xpath('//*[@id="password"]')
password.send_keys('密码***')
3、点击登录按钮
同样使用xpath表达式定位,最后这样实现:browser.find_element_by_xpath('//*[@id="fm1"]/input').click()
time.sleep(1.5)为什么我们点击登录按钮之后,要延迟一段时间呢?网页响应是需要时间的,只是长短可能有所不同。因此,添加time.sleep(1.5),使其停顿一些时间。

到这里,登录基本就完成了。是不是很简单,我们根本没有进行抓包分析,只是找找位置。


这是完整的登录代码和判断是否登陆成功:

**** Hidden Message *****


baicel21314 发表于 2017-9-20 08:58:00

楼主,你是一个大好人!!

tmkuej 发表于 2017-9-26 10:05:42


为什么呢?

Brance 发表于 2017-9-27 10:22:53

看看~·

tuxiaoqing 发表于 2017-9-27 11:49:52

非常感谢楼主分享 学到很多

小西红柿子 发表于 2017-10-12 13:31:29

楼主能不能抓知乎的数据

和vvv 发表于 2017-10-12 14:53:49

不行,学习的还是比较基础{:5_100:}。知乎的验证码不好处理,要点文字。不过,我认为网上应该有高手会的。

jjgary 发表于 2017-10-12 15:26:40

学习

lLYPYTH 发表于 2017-10-16 14:55:33

可以的

张大象 发表于 2017-10-25 16:39:23

看看

ド゛゜范 发表于 2017-10-25 21:05:15

{:5_90:}可以的

tiangolden 发表于 2017-10-30 07:47:51

非常精彩,又学习到了,多谢分享

ledehui 发表于 2017-11-10 13:21:38

1111

来钓鱼 发表于 2017-12-13 22:57:45

{:7_130:}

天新 发表于 2017-12-15 18:46:01

厉害

天新 发表于 2017-12-15 20:06:36

和vvv 发表于 2017-10-12 14:53
不行,学习的还是比较基础。知乎的验证码不好处理,要点文字。不过,我认为网上应该有高手会的。

为啥我的第一个界面都没出现啊,只看见一个黑频的屏幕

sunlight070 发表于 2017-12-22 19:43:43

假装此处有回复

石小龙 发表于 2017-12-26 09:45:27

向大神学习

昔日少年郎 发表于 2018-3-31 11:35:27

学习

爱上空间的hi 发表于 2018-6-26 01:03:16

1
页: [1] 2
查看完整版本: 44 CSDN博客模拟登录(selenium实现)续