在浏览器中直接打开会出现"载入中,请稍后..."的字眼。这是因为没有登陆,没有权限

在这里登陆自己的QQ,再访问就可以了

此时的选项是不可点击的,因为网页检测你的浏览环境不是手机界面,并且是不可触摸的

在Chrome下很好解决,只需进入响应式模式即可,如果是火狐,则需要进入火狐后再次点击"加载触摸事件",就可以点击进入详情页

既然在浏览器端已经可以获取到这些数据,那么应该就可以使用python和selenium来获取数据

自然而然的想到如何让Chrome和Firefox来进入这种模式呢?

单单换UA和窗口尺寸是不行的,因为不会加载触摸事件。

Firefox driver我没有找到这样的操作,好在Chrome可以。主要代码如下:

#!/bin/env python

# -*- coding:utf-8 -*-

fromseleniumimportwebdriver

fromselenium.webdriver.chrome.optionsimportOptions

presets=[

{"key":"1080 x 1920","name":"Nexus 5 Portrait","width":1080,"height":1920},

]

mobile_emulation={

"deviceMetrics":{"width":360,"height":640,"pixelRatio":3.0},

"userAgent":"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36"}

chrome_options=Options()

chrome_options.add_experimental_option("mobileEmulation",mobile_emulation)

driver=webdriver.Chrome(chrome_options=chrome_options)

#!/bin/env python

# -*- coding:utf-8 -*-

fromseleniumimportwebdriver

fromselenium.webdriver.chrome.optionsimportOptions

presets=[

{"key":"1080 x 1920","name":"Nexus 5 Portrait","width":1080,"height":1920},

]

mobile_emulation={

"deviceMetrics":{"width":360,"height":640,"pixelRatio":3.0},

"userAgent":"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36"}

chrome_options=Options()

chrome_options.add_experimental_option("mobileEmulation",mobile_emulation)

driver=webdriver.Chrome(chrome_options=chrome_options)

这样获得的driver就可以正常浏览投票页面了

还有个值得注意的是当投票人数比较多的情况下,不会一次加载完成的。每当鼠标滚动到最下方,就会加载一些数据。我最开始本打算用selenium进行点击拖动来加载数据,后来查询到可以用js控制右侧的滚动条来实现

这里比较偷懒,尝试拖动三次,其实应该在首页获取投票人数,第一次加载100人,看看QQ的js,找到之后一次加载多少数据后,得到循环的次数...

# 滑动界面获取全部投票

try:

for_inrange(3):

js="var q=document.body.scrollTop=10000"

driver.execute_(js)

time.sleep(2)

except:

pass

# 滑动界面获取全部投票

try:

for_inrange(3):

js="var q=document.body.scrollTop=10000"

driver.execute_(js)

time.sleep(2)

except:

pass

其它的就没什么好说的了,先登录,然后访问投票页面。

完整的代码在这里:python-qqvote

只获取了投票第一项的数据,如果不知道投票选项,需要在投票首页的地方获取投票选项数量,比较懒...就这样吧

QQ投票页面的数据中只有用户昵称,比较可惜,不过可以在QQ群空间获取QQ号和昵称的对应关系。

获取QQ群成员的代码在这里:python-qun-people

参考:

https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation

http://blog.csdn.net/winterto1990/article/details/48215941

https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation

http://blog.csdn.net/winterto1990/article/details/48215941

pythonqq交流群_使用 Python 获取 QQ 群投票数据相关推荐

  1. python 获取qq群成员信息_教你用python爬取自己加入的QQ群成员名单,它们竟然是这样的人...

    本次实验环境: 操作系统:Mac OS 开发语言:python 3.6 IDE:jupyter notebook(建议使用) 浏览器:Chrome(版本75.0.3770.100) 需要用到的库:se ...

  2. python 获取qq群成员信息_用Python编写工具获取QQ群成员的昵称和号码,使用,及,小...

    使用火狐浏览器进行数据的抓取,火狐浏览器对json比较友好 进入QQ群官网: 登录后,点击成员管理: 先随机选择一个群,抓取一下信息,找一下规律 打开浏览器控制台,重新刷新网页: 这是我们想要的一些信 ...

  3. python 获取qq群成员信息_python 获取qq群成员列表数据

    #!/usr/bin/python # -*- coding: utf-8 -*- import re import time import xlsxwriter from selenium impo ...

  4. python 获取qq群成员信息_Python-获取QQ群成员信息并存入excel及redis并发送邮件

    '''需求: 1.请求qq群的接口,实现传入一个群号 2.把群里每个人的 昵称.群备注.入群时间.qq号,性别,存到redis里面,用hash类型 {"qq_num":XXX,&q ...

  5. php获取qq群列表,开源POST获取QQ群列表和成员

    看到有个帖子,好像还很火,好像没开源, 不发附件,刚出来,怕违规,贴下代码吧. 获取群的代码: .版本 2 .子程序 获取群列表, , 公开 .参数 cs_群, 群, 参考 数组 .局部变量 jb_网 ...

  6. python 获取qq群成员信息_[Python-ItChat]获取微信所有好友, 群信息(群内人员),批量添加好友,自动发送信息等...

    New 09.10 降低使用门槛, 编译生成exe 使用方法 下载exe,双击, 然后扫码-> 同级目录下生成friends.txt和chatrooms.txt[格式为json]对应的是好友列表 ...

  7. python刷网易云_利用Python获取网易云音乐数据,python

    #!/usr/bin/env python # -*- coding: utf-8 -*- import json import re import urllib.request import pan ...

  8. python发信息给微信群_利用Python转发微信群通知信息

    案例:作为班长需要实时转发年级群发布的有关通知.文件到自己班的微信群,这种无脑的重复性工作适用于编写脚本自动帮忙处理. 准备:服务器(可选择阿里云学生服务器).itchat模块.一颗爱折腾的心 代码: ...

  9. Python uiautomation使用---自动获取QQ群聊天记录

    使用uiautomation获取qq群聊天记录,后续可以拓展到消息自动回复.本章只简单介绍自动获取聊天记录,代码如下: import uiautomation as auto from time im ...

最新文章

  1. ICCV 2021 | 字节跳动利用单幅图片做三维重建!将NeRF、MPI结合,提出MINE新工作...
  2. 北京建委breaa.cn宕了
  3. KVM总结-KVM性能优化之网络性能优化
  4. Oracle触发器的语法详解
  5. 方法数超了65535 无法安装的解决方案
  6. 远程工具连接mysql备份_MySQL远程连接 备份还原
  7. 校友邮箱_freeCodeCamp校友网络:FCC校友的自主指导网络
  8. 多线程知识梳理(2) - 并发编程的艺术笔记
  9. js为链接绑定点击事件并且附带return false;来阻止跳转
  10. Windows as a Service(3)——使用SCCM管理Windows10更新
  11. Git安装遇到的问题fatal: Could not read from remote repository.的解决办法
  12. LMC7660即-5V产生电路
  13. android移动端设计规范,干货|超全面的移动端UI 设计规范整理汇总(下)
  14. Windows系统封装(四)正式封装和测试。
  15. linux build文件,从源代码到可执行文件——编译全过程解析
  16. 转区系统开放艾欧尼亚转入服务器,【英雄联盟】转区系统开放艾欧尼亚转入服务...
  17. Hexo界面美化_实用插件配置
  18. Kaggle数据集-贷款逾期预测
  19. Kotlin拿Android本地视频缩略图
  20. 陈年不能输,雷军不敢输

热门文章

  1. 读书笔记之费曼物理讲义第二册
  2. 抖音跳转到微信引流的方法,私信页面如何添加微信
  3. Mac 关闭Cisco AnyConnect 开启启动
  4. 【小程序】提交成功和失败界面示例(图文+代码)
  5. Linux获取系统UUID
  6. 微信小程序Canvas学习
  7. ssas连接oracle性能,Analysis Services(SSAS) 性能优化
  8. 英国大学入学要求只是A-level/IB成绩吗
  9. js 返回页面顶部的实现( layui)
  10. 整理一批 国内外优秀设计团队 设计相关网站