基于selenium的自动登录qq空间并遍历所有相册及相片的功能。只能访问自己或好友(有访问权限)的相册,好友有密码的相册不可能。。。这里只是介绍流程,所以只是实现了遍历,并未实现图片文件的下载保存。读取相册信息是请求的手机版qq空间的相册相关接口,其中写死了只遍历前50个相册,可以自己改。

脚本并未处理任何可能出现的错误,请自己完善。

在环境:64位win7+python2.7+selenium3.5.0+chromedriver2.31 下测试通过。

#!coding:utf-8
from selenium import webdriver
import requests,time,json

login_uin = '123456789' #登录qq
pwd = 'zx1233211234567' #登录密码
album_uin = '123456789' #要读取相册的qq

s = requests.Session()

#实例化出浏览器开始登录
driver = webdriver.Chrome()
driver.set_window_size(1000,600)
driver.get('https://mobile.qzone.qq.com')
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys(login_uin)
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys(pwd)
driver.find_element_by_id('go').click()
#等待浏览器中js计算出qzonetoken
while True:
    qzonetoken = driver.execute_script("return window.shine0callback")
    if qzonetoken:
        break
    time.sleep(0.1)
#读取QQ出售平台cookie后关闭浏览器
cookies = driver.get_cookies()
driver.quit()

cookies_ = {}
for cookie in cookies:
    if cookie['name'] == 'p_skey':
        skey = cookie['value']
    #s.cookies.set(cookie['name'], cookie['value'])
    cookies_[cookie['name']] = cookie['value']

#计算gtk
e = 5381
for i in range(len(skey)):
    e = e + (e<<5)+ord(skey[i])
g_tk = str(2147483647 & e)

###################### www.zh30.com ######################

#请求中添加cookie,开始读取相册列表
requests.utils.add_dict_to_cookiejar(s.cookies, cookies_)
url="https://mobile.qzone.qq.com/list?qzonetoken="+qzonetoken+"&g_tk="+g_tk+"&format=json&list_type=album&action=0&res_uin="+album_uin+"&count=50"
r = s.get(url);
data = json.loads(r.text.encode('utf-8'))

for album in data['data']['vFeeds']:
    print '相册名:'+album['pic']['albumname'].encode('utf-8')
    print '相册id:'+album['pic']['albumid'].encode('utf-8')
    print '图片数量:' + str(album['pic']['albumnum'])
    print '开始下载相册图片:'
    #读取当前相册中的图片列表
    url = "https://h5.qzone.qq.com/webapp/json/mqzone_photo/getPhotoList2?qzonetoken="+qzonetoken+"&g_tk="+g_tk+"&uin="+album_uin+"&albumid="+album['pic']['albumid'].encode('utf-8')+"&ps=0"
    r = s.get(url)
    photo_datas = json.loads(r.text.encode('utf-8'))
    for T in photo_datas['data']['photos']:
        for pic in photo_datas['data']['photos'][T]:
            print '图片名:'+pic['picname'].encode('utf-8')+',url:'+pic['1']['url'].encode('utf-8')
    print "="*10

以下是运行截屏,右键图片在新标签页打开,可以高清~

python+selenium自动登录qq空间并下载相册相关推荐

  1. python访问陌生人qq空间_使用Python+Selenium模拟登录QQ空间

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

  2. Python selenium 模拟登录QQ空间

    下面文档的脚本执行,必须要下载 谷歌浏览器对应的驱动详细的流程时 selenium的使用流程a 环境的安装 b 谷歌浏览器驱动下载地址:http://chromedriver.storage.goog ...

  3. python+selenium自动登录QQ邮箱

    环境:win10x64+python3.5+chrome+chromedriver 需要安装的模块: 1.chromedriver 下载地址,下载后加入系统环境变量即可. 2.selenium # p ...

  4. selenium自动登录QQ空间(无头、规避)

    无头参数设置: from selenium.webdriver.edge.options import Options options = Options() options.add_argument ...

  5. Selenium基础知识 自动登录QQ空间

    Selenium基础知识 自动登录QQ空间 from selenium import webdriver import timedef auto_login():driver = webdriver. ...

  6. python爬取加密qq空间_使用python+selenium爬取qq空间好友动态

    使用python+selenium爬取qq空间好友动态 分析过程如下: 要想用selenium登陆qq空间,必须点击账号密码登陆按钮然后再填写账号密码登陆. 1.PNG 点击账号密码按钮后跳转到如下页 ...

  7. 无聊日常--python+selenium+chromedriver 实现QQ空间评论自动删除

    博客内容用于技术交流学习,读者通过学习本博客内容后进行的任何违法违规操作与本人无关,特此声明. 我最初有写这个项目的想法是在18年11月底(好像是),当时我们学校的表白墙遭到了麦片的账号骚扰--不断在 ...

  8. python实现自动登录QQ邮箱

    python 和selenium实现自动登录QQ邮箱 selenium需要先导入,pip install selenium 或者在pycharm里面点击file–settings–Project–Pr ...

  9. Python学习笔记(二):利用Selenium一键自动登录QQ空间、百度等网站

    曾经在学校闲的时候,见到有人通过程序自动登录百度等网站,觉得很厉害.实习的时候,偶然的机会也研究了一下,有空的时候试试运行就自动点赞,觉得还比较有意思,可以用来装装X,哈哈. 一.python环境 第 ...

最新文章

  1. 如何优雅地根治null值引起的Bug!
  2. 找出1000以内的所有完数。
  3. 2019年“计算法学”夏令营即日起接收报名申请
  4. boost::smart_ptr模块boost/pointer_cast.hpp 的测试
  5. django ajax 简书,Django_ajax
  6. c盘的Oracle文件删不了吗,oracle卸载不干净怎么办
  7. 牛X,试用了下GitHub上22万Star的第一抢票神器,3秒钟抢到!
  8. 《是碰巧还是执着?python所阅读的每一场知识点,唯一的共同点就是——参赛选手中,有python之socket编程!》
  9. 相同java代码,编译生成class文件不同的原因-JDK版本不同(大版本相同,小版本不同)
  10. python输出语句怎么换行_python输出语句换行
  11. 苹果4s怎么越狱教程_苹果手机:使用Rollectra工具清除iOS11.3~11.4beta3越狱教程
  12. java新闻发布系统源代码_Java新闻发布系统源代码
  13. 螺钉 螺母 硬币三种物体的识别
  14. f检验matlab计算,F检验(F-Test)计算公式与在线计算器_三贝计算网_23bei.com
  15. Netty In Action中文版 - 第一章:Netty介绍
  16. 很酷的瞄准镜样式光标效果
  17. Postman中请求体提交方式
  18. 物流计算机流程图,物流管理流程图.doc
  19. 黄哥python培训骗局
  20. 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总

热门文章

  1. HTML里的表格不能复制粘贴,表格之间无法复制粘贴怎么办_两个EXCEL表格为什么不能复制和粘贴-win7之家...
  2. 为什么要使用openstry_为什么要使用双屏办公?
  3. cad2010背景怎么调成黑色_买皮蛋时,黄色和黑色的有什么区别?哪种更好?看完涨知识了...
  4. android 插桩工具,Android Asm 插桩 教学项目
  5. win10进程太多怎么优化_【电脑维护宝典】WIN10系统下的电脑维护(2)
  6. 深度学习:tensorflow的简单用法,tensorflow实现SVM
  7. 学习伟大的Python的第七天
  8. day002--python编程的相关软件,变量
  9. iio iio:device0: Error: xscale == 0
  10. 删除msconfig启动项不打勾的东西