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 *****
楼主,你是一个大好人!!
为什么呢? 看看~· 非常感谢楼主分享 学到很多 楼主能不能抓知乎的数据 不行,学习的还是比较基础{:5_100:}。知乎的验证码不好处理,要点文字。不过,我认为网上应该有高手会的。 学习 可以的 看看 {:5_90:}可以的 非常精彩,又学习到了,多谢分享 1111 {:7_130:} 厉害
和vvv 发表于 2017-10-12 14:53
不行,学习的还是比较基础。知乎的验证码不好处理,要点文字。不过,我认为网上应该有高手会的。
为啥我的第一个界面都没出现啊,只看见一个黑频的屏幕 假装此处有回复 向大神学习 学习 1
页:
[1]
2