`
dyllove98
  • 浏览: 1404147 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39004
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:79972
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133089
社区版块
存档分类
最新评论

用selenium2\htmldriver模仿第三方登录(新浪微博、qq等),取cookie

阅读更多

进行播放记录等后台api的主动化测试时,须要后台鉴权,本站注册用户这块轻易解决:经由过程httpclient向响应的passport接口提交恳求,抓取cookie;第三方登录因为涉及到第三方的接口和回调剂理惩罚,逻辑较为错杂,用之前办法实现斗劲麻烦。衡量之后决意用selenium实现。

 

  selenium的实现过程斗劲顺利,不过碰到两个小景象:1.iframe上元素的查找、捕获,实现体式格式driver.switchTo.frame(iframeId);2.在主页面上click链接打开新页面,新页面与主页面切换后才干对新页面进行操纵,实现体式格式:

 


1 WebDriver popup = null;

2 for (String winHandle : driver.getWindowHandles()) {

3     popup = driver.switchTo().window(winHandle);

4     if (popup.getTitle().contains("QQ帐号安然登录"))

5         break;

6 }    

 

 

 

  不过selenium运行起来,因为调取的是firefox\ie\chrome等浏览器,浏览器启动,浏览器下载页面上所有css\js\picture等文件,解析css衬着结果、解析js,所以速度就会很慢,对于只是抓起cookie的需求,实现效力其实不是很幻想。好在selenium的webdriver除了调取浏览器之外,还可以应用htmlunitdriver,该driver是对htmlunit的再次封装,使其对外接口与selenium应用浏览器做webdriver时的对外接口相一致,因为不须要启动额外法度,也没有了界面衬着,省去了不少履行时候。

 

  不过在实现时,碰到一个htmlunitdriver的疑似bug:在主页面上click链接打开新页面时,只是进行了该链接响应的http恳求,并未将该页面上其它js\css进行下载,如许在对新页面中元素进行操纵,触发的js函数又恰好在这些未下载的文件中时,就会出题目了,例如此次碰到的向一个type="password"的input中sendkeys不成功,无法实现相干操纵。解决办法,抓起要打开的链接中的href属性,在driver中直接get打开,固然未能彻底找到并解决该bug,但也成功绕开了该bug。等有时候再查一下此中内涵的原因吧。

 

分享到:
评论

相关推荐

    selenium模拟登录新浪微博.

    通过以上步骤,你可以使用 Selenium 成功模拟登录新浪微博。这个过程涉及到网页元素的定位、交互,以及浏览器自动化的基本概念,是学习 Selenium 的良好实践。在实际应用中,还可以结合其他库(如 BeautifulSoup、...

    python新浪微博爬虫,爬取微博和用户信息 (源码)

    这是新浪微博爬虫,采用python+selenium实现。 免费资源,希望对你有所帮助,虽然是傻瓜式爬虫,但是至少能运行。同时rar中包括源码及爬取的示例。 参考我的文章: ...[python爬虫] Selenium爬取新浪微博内容及用户...

    Python-爬取新浪微博信息

    此外,登录验证也是爬虫面临的一大挑战,可能需要利用`requests.Session`或第三方库如`selenium`来实现。 异步爬取是提高爬虫效率的关键,Python的`asyncio`库可以实现协程(coroutine)的并发处理,搭配`aiohttp`...

    模拟登陆新浪微博

    在这个场景中,我们关注的是如何使用HTTPClient 4库来模拟登录新浪微博。首先,我们需要理解HTTPClient库的基本概念。 HTTPClient是一个强大的Java库,用于处理HTTP请求和响应。它提供了丰富的功能,包括支持HTTPS...

    python使用selenium登录QQ邮箱(附带滑动解锁)

    最近因为工作需要 用selenium做了一个QQ邮箱的爬虫(登录时部分帐号要滑动解锁),先简单记录一下。 这个问题先可以分为两个部分:1.登录帐号和2.滑动解锁。python版本3.5.4 问题分析:登录+滑动解锁 其实登录账号的部分...

    selenium+phantomjs实现新浪微博模拟登陆

    【描述】:使用Selenium与PhantomJS相结合,可以实现对新浪微博的模拟登录。这一过程涉及到了网络请求、页面元素定位、表单提交等多个环节,对于理解网页交互机制和自动化测试技术有很好的实践意义。 首先,我们...

    需要登录才能抓取的新浪微博爬虫例子

    然而,许多网站为了保护用户隐私和防止恶意爬取,会设置登录验证机制,新浪微博就是其中之一。本篇将详细介绍一个解决“需要登录才能抓取的新浪微博爬虫例子”,帮助你理解和构建类似的爬虫程序。 首先,我们需要...

    基于Python和Selenium的新浪微博数据访问.zip

    要开始使用Selenium抓取新浪微博数据,首先需要安装Selenium库和相应的浏览器驱动。在Python环境中,可以使用pip命令进行安装: ``` pip install selenium ``` 接着,根据你选择的浏览器下载对应的驱动,并将其路径...

    python实现爬取新浪微博

    可以使用requests库的session对象保持会话状态,同时处理登录时的验证码、cookie和session_key等关键信息。登录成功后,爬虫就能以已登录用户的视角访问并抓取数据。 在访问其他用户的微博页面时,我们需要注意URL...

    新浪微博评论抓取

    本文将深入探讨如何使用Python等编程语言进行新浪微博评论的抓取。首先,我们要明确的是,抓取网页数据时需遵循网站的robots.txt协议,并尊重用户隐私,合法合规地进行操作。 标题“新浪微博评论抓取”提示我们,这...

    基于selenium的新浪微博关键字搜索结果全自动爬虫.zip

    支持自定义搜素关键字、搜索起始时间、爬取起始页数(以实现中断后接上次继续爬取)。爬取内容包括微博账号、发文时间...然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

Global site tag (gtag.js) - Google Analytics