from selenium import webdriver
import time
# 打开浏览器
dr = webdriver.Chrome()
# 打开某个网址
dr.get('https://user.qzone.qq.com/2330331400/main')
# 切换框架
dr.switch_to_frame('login_frame')
time.sleep(1)
dr.find_element_by_link_text('帐号密码登录').click()
# 输入账号
dr.find_element_by_xpath('//*[@id="u"]').send_keys('')
time.sleep(8)
# 点击登录
dr.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(2)
# 点击个人档
dr.find_element_by_xpath('//*[@id="menuContainer"]/div/ul/li[6]/a').click()
time.sleep(2)
# 请求好友的空间地址
dr.get('https://user.qzone.qq.com/481135195')
time.sleep(3)
# dr.switch_to_alert()
# dr.find_element_by_link_text('我知道了').click()
# 点击好友的个人档
dr.find_element_by_xpath('//*[@id="menuContainer"]/div/ul/li[6]/a').click()
time.sleep(1)
# 切换框架
dr.switch_to_frame('app_canvas_frame')
# 点击好友的个人资料
dr.find_element_by_link_text('个人资料').click()
# dr.find_element_by_link_text('//*[@id="info_link"]').click()
# 输入当前页面的源代码
print(dr.page_source) dr.get('https://user.qzone.qq.com/495483884')
time.sleep(3)
# dr.switch_to_alert()
# dr.find_element_by_link_text('我知道了').click()
dr.find_element_by_xpath('//*[@id="menuContainer"]/div/ul/li[6]/a').click()
time.sleep(1)
dr.switch_to_frame('app_canvas_frame')
dr.find_element_by_link_text('个人资料').click()
# dr.find_element_by_link_text('//*[@id="info_link"]').click()
print(dr.page_source)

python selenium爬取QQ空间方法的更多相关文章

  1. selenium爬取qq空间,requests爬取雪球网数据

    一.爬取qq空间好友动态数据 # 爬取qq空间好友状态信息(说说,好友名称),并屏蔽广告 from selenium import webdriver from time import sleep f ...

  2. python+selenium+requests爬取qq空间相册时遇到的问题及解决思路

    最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...

  3. 使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...

  4. Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

  5. Python+Selenium爬取动态加载页面(1)

    注: 最近有一小任务,需要收集水质和水雨信息,找了两个网站:国家地表水水质自动监测实时数据发布系统和全国水雨情网.由于这两个网站的数据都是动态加载出来的,所以我用了Selenium来完成我的数据获取. ...

  6. Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: python小爬虫 PS:如有需要Python学习资料的小伙伴可以 ...

  7. Python_小林的爬取QQ空间相册图片链接程序

    前言 昨天看见某人的空间有上传了XXXX个头像,然后我就想着下载回来[所以本质上这是一个头像下载程序],但是一个个另存为太浪费时间了,上网搜索有没有现成的工具,居然要注册码,还卖45一套.你们的良心也 ...

  8. 用python爬取QQ空间

    好久没写博文了,最近捣鼓了一下python,好像有点上瘾了,感觉python比js厉害好多,但是接触不久,只看了<[大家网]Python基础教程(第2版)[www.TopSage.com]> ...

  9. Python爬虫实战:使用Selenium抓取QQ空间好友说说

    前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...

随机推荐

  1. ERROR: java.lang.NullPointerException的一种情况

    java.lang.NullPointerException错误,错误原因就是以下六条没配置完: 1.JAVA环境配置正确.2.源码里面的包没有与tomcat的包冲突.3.把数据库文件给导入到了SQL ...

  2. navicat 连接 mysql 解决出现client does not support authentication protocol requested by server的问题

    MySQL8换了加密插件,数据库管理客户端都来不及更新,连接方式缺乏sha2的加密方式首先第一步, UPDATE mysql.user SET plugin = 'mysql_native_passw ...

  3. java解析前端请求接口的全部入参

    第一种: public static String getRequestInput(HttpServletRequest request) { StringBuilder sb = new Strin ...

  4. Oracle中事务处理控制用法

    oracle 事物控制包括 COMMINT ROLLBACK SAVEPOINT avepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepo ...

  5. ubuntu14静态ip配置

    0.配置ip需要掌握的一些基本指令 打开/创建文件      sudo vim ... 插入信息      i 保存并强制退出      先按Esc,再键入:wq!,回车 1.使用命令 sudo vi ...

  6. EvalAI使用——类似kaggle的开源平台,不过没有kernel fork功能,比较蛋疼

    官方的代码 https://github.com/Cloud-CV/EvalAI 我一直没法成功import yaml配置举办比赛(create a challenge on EvalAI 使用htt ...

  7. npm run build 打包后,如何运行在本地查看效果(Apache服务)

    目前,使用vue-cli脚手架写了一个前端项目,之前一直是使用npm run dev 在8080端口上进行本地调试.项目已经进行一半了,今天有时间突然想使用npm run build进行上线打包,试试 ...

  8. etymon word flower bee apiary forget out~1

    1● anth   2● flower 花       1● ap   2● bee 3● apiary 养殖场          

  9. Java版本知识

    1zip是压缩包,而MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据,只要系统中包含win ...

  10. C/C++ 全局变量的访问

    #include <iostream> using namespace std; ; int main(int argc, char **argv) { ; std::cout <& ...