叙述
步骤:
(进群:548377875 获取数十套PDF哦!)
代码如下:
from selenium import webdriver
import time
import requests
#设置无头模式
opt=webdriver.ChromeOptions()
opt.add_argument('--headless')
b=webdriver.Chrome(options=opt)
#打开目标网址并输入正确的qq和密码
b.get('https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=715030902&daid=70&pt_no_auth=0&s_url=http://qzone.qq.com')
b.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
b.find_element_by_xpath('//*[@id="u"]').send_keys('你的QQ')
b.find_element_by_xpath('//*[@id="p"]').send_keys('你的密码')
b.find_element_by_xpath('//*[@id="login_button"]').click()
#使用sleep防止还未跳转就抓取cookie,具体时间根据自己网速写
time.sleep(2)
#使用replace方法去掉uin最前面的字符 'o'得到正确的uin
my_uin=str(b.get_cookie('uin')['value']).replace('o','')
my_skey=b.get_cookie('skey')['value']
b.quit()
uin='uin=%s'%my_uin
skey='skey=%s'%my_skey
qq=input('输入查询QQ:')
#将上面获取到的uin和skey写入headers中获取返回的json数据
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5702.400 QQBrowser/10.2.1893.400',
'Cookie':uin+skey
}
# 使用try方法 因服务器繁忙获取不到 ,偶尔会发生并抛出异常
try:
resp = requests.get('http://qlist.qlogo.cn/file_list?src=1&uin=%s&md5=&start_idx=1&end_idx=500'%qq,headers=headers)
final_data=resp.json()
print('共%d张'%final_data['total_num'])
#获取每个头像的地址及对应时间戳(可以转换为本地时间,自行发挥)
for a in final_data["file_list"]:
print(a['base_url']+'140',a['timestamp']) #url后面+140即获取小头像,640为大头像,防止获取不到
except KeyError:
print('貌似开小差了,请重试! ')
最后利用python的requests库(强烈推荐使用这个库,简单粗暴)获取就OK了!
附图:
雏形就是以上了,需要做下载图片功能或者封装成函数反复查询的的请自行发挥,太懒了,不想写了 。
网友评论