在此登录您的QQ并再次访问
此时选项不可点击,因为网页检测到你的浏览环境不是手机界面,不可触摸
Chrome下很好解决,进入响应模式即可。如果是Firefox,需要进入Firefox,再次点击“加载触摸事件”,然后就可以点击进入详细页面
既然可以在浏览器端获取数据,那么应该可以使用python和selenium来获取数据
自然,如何让Chrome和Firefox进入这种模式?
只改变UA和窗口大小是不行的,因为触摸事件不会被加载。
火狐驱动我没发现这样的操作。还好Chrome可以。主要代码如下:
#!/bin/env python
# -*-编码:utf-8 -*-
fromselenium importwebdriver
from selenium . web driver . chrome . options importo options
预设=[
{“键”:“1080 x 1920”,“名”:“Nexus 5人像”,“宽”:1080,“高”:1920},
]
mobile _仿真={
“设备规格”:{“宽度”:360,“高度”:640,“像素比”:3.0},
“user agent”:“Mozilla/5.0(Linux;Android 5.0SM-g 900 p Build/lrx 21t)apple WebKit/537.36(KHTML,喜欢Gecko)Chrome/48 . 0 . 2564 . 23 Mobile Safari/537.36 " }
chrome_options =Options()
chrome _ options . add _ experimental _ option(" mobile Multimation ",mobile _ emulation)
driver =webdriver。chrome(chrome _ options = chrome _ options)
由此获得的驾驶员可以正常浏览投票页面
还值得注意的是,当选民人数较多时,不会一次装。每次鼠标滚动到底部,都会加载一些数据。一开始打算用selenium点击拖拽加载数据。后来发现可以用js来控制右边的滚动条。
这里很懒。试着拖三次。其实你应该在首页得到投票人数,第一次加载100人,看看QQ的js,看看下次加载多少数据,得到循环数...
#滑动界面获得所有投票
尝试:
for_ inrange(3):
js = " var q = document . body . scroll top = 10000 "
driver.execute_(js)
time.sleep(2)
除了:
通过
没什么好说的,先登陆,然后访问投票页面。
完整的代码在这里:python-QQ vout
只获得第一项投票的数据。如果不知道投票选项,需要在投票首页得到投票选项的数量,这很懒...好了
很遗憾QQ投票页面的数据中只存在用户的昵称,但是QQ号和昵称的对应关系可以从QQ群空获得。
获取QQ群成员的代码在这里:python-群人
参考:
https://sites . Google . com/a/chromium . org/chrome driver/mobile-仿真
http://blog.csdn.net/winterto1990/article/details/48215941
1.《qq投票 使用 Python 获取 QQ 群投票数据》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《qq投票 使用 Python 获取 QQ 群投票数据》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1241505.html