用Selenium分析qq数据

发表于:2018-12-24 11:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Slwhy    来源:CSDN

  最近突然想分析一下qq空间里面的数据,增加一下对自己的了解和认识,但不过 qq 的加密比较复杂,分析起来头发怕是要掉一半,所以咱选择了 selenium 反正数据量也不是很大,就当练练手了。
  安装 selenium 及相关配置
  pip install selenium
  可以通过这条命令来安装 selenium 非常简单,安装好之后就是配置好相关浏览器的 driver 了,这里我选择的是 chromedriver 不过安装的时候要注意一个问题,就是安装的 driver 要和自己已安装的浏览器匹配,咱之前安装的时候就因为没有注意这个问题,报了一个莫名其妙的错误,具体处理方式参考这篇博客:selenium 使用chrome时与chromedriver版本不匹配的问题
  使用 selenium
  先导入这个包
 from selenium import webdriver
  然后,初始化一个 browser
 browser = webdriver.Chrome(executable_path="/code/python/chorme/chromedriver")
  这个路径,如果不是已经添加到系统路径的话,是需要自己加上的
  接着,咱通过初始化好的这个浏览器,去请求我们的 qq 空间的登录界面
 browser.get('https://i.qq.com/')
  不出意外的话,咱们能获得这样一个界面:
  大家可以看到,我们的登录信息是在一个白色框框内的,按正常情况,我们人为登录的时候( 这里说的是账号密码登录 ),一般是先点击一下下方的 “账号密码” 登录,然后会有一个提交信息的表单。
  现在我们用 selenium 其实是跟人为差不多,selenium 其实就是模拟出人在浏览器上的操作。
  所以我们现在要做的,就是切换到这个登录的 frame 中,然后点击一下这个 “账号密码登录” ,再在用户名和密码的表单中填入相应的 qq 号和密码,这个用代码怎么实现呢?一起来看一下:
   browser.switch_to_frame('login_frame')
  browser.find_element_by_id('switcher_plogin').click()
  # time.sleep(5)
  browser.find_element_by_id('u').send_keys('qq 号')
  browser.find_element_by_id('p').send_keys('密码')
  browser.find_element_by_id('login_button').click()
  time.sleep(5) #休眠一定时间,等待其加载相应文件
  print(browser.page_source)
  如果报了找不到元素的错误,可能是登录的元素发生了修改,大家打开开发者模式开一下,稍作修改即可,其实,如果你怕麻烦的话,可以用用手机版的接口,能直接通过表单提交数据。
  自此,你应该已经成功登录了 qq 空间,不过在这里本人还碰到了一个问题,每次点击某个按钮后,应该设置程序睡眠一定时间,好像是要等待加载某些文件,反正咱在点击 login_button 后直接打印了一下页面信息得到的是错误登录信息。
  
      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号