DDR爱好者之家 Design By 杰米
具体代码如下所示:
#coding:utf-8
#!/usr/bin/python3
from selenium import webdriver
import time
import re
import importlib2
import sys
importlib2.reload(sys)
def startSpider():
driver = webdriver.Chrome('/Users/zachary/zachary/chromedriver.exe') #这个是chormedriver的地址
driver.get('https://qzone.qq.com/')
driver.switch_to.frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys('QQ号') #这里填写你的QQ号
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('QQ密码') #这里填写你的QQ密码
driver.find_element_by_id('login_button').click()
time.sleep(2)
#设置爬取内容保存路径
f = open('/Users/zachary/Documents/shuoshuo.txt','w')
#---------------获得g_qzonetoken 和 gtk
html = driver.page_source
'''g_qzonetoken=re.search('window\.g_qzonetoken = \(function\(\)\{ try\{return (.*"e794139a284d6ea9e0b26826e541b55df37d0667a3544f534de25aebdb64628d3ab75e1d7104bbb22a"
cookie = {}#初始化cookie字典
for elem in driver.get_cookies():#取cookies
cookie[elem['name']] = elem['value']
gtk=getGTK(cookie)#通过getGTK函数计算gtk
#print(g_qzonetoken)
#print(gtk)
#--------------获得好友列表 注意下面的链接
driver.get('https://user.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/tfriend/friend_hat_get.cgi"(.\d*)\":\{\\n"realname":"(.*"}',re.S)
QQ_name_list = re.findall(abtract_pattern,str(friend_list)) #数组
print(QQ_name_list)
numList=dict()# numList => (QQnum:QQname) #列表
for i in QQ_name_list:
numList[str(i[0])]=str(i[1])
begin = 0
last_source = ""
tag = 1
first = 0
firstTime=""
#如果要爬取自己的说说,手动添加自己的qq号
#numList['你的qq号']='你的名字'
#print(numList)
for key in numList.keys():
QQnum = key
QQname = numList[QQnum]
if QQnum == "好友qq号": #根据qq号查找指定好友说说
count = 1
begin = 0
while tag==1 :
#-------------进入好友说说页面 #'+QQnum+' '+str(begin)+'
#print("Begin:"+str(begin))
driver.get('https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6"message":"(.*","name":',re.S)
message = re.findall(abtract_pattern,str(msg_list_json))
if message!=[]:
if str(message[0])=='对不起,主人设置了保密,您没有权限查看':#对不起,主人设置了保密,您没有权限查看
break
#print(msg_list_json)
#解析JSON
#webDriver没有现成的JSON解析器,所以采用获取源码的方式,然后使用正则表达式获取具体细节
msg_list_json = msg_list_json.split("msglist")[1]#拆分json,缩小范围,也能加快解析速度
msg_list_json = msg_list_json.split("smoothpolicy")[0]
msg_list_json = msg_list_json.split("commentlist")[1:]
#说说动态分4种:1、文字说说(或带有配图的文字说说)
# 2、只有图片的说说
# 3、转发,并配有文字
# 4、转发,不配文字
for text in msg_list_json:
# 1、先检查说说,用户是否发送了文字,如果没有文字,正则表达式匹配无效
abtract_pattern = re.compile('\}\],"content":"(.*","createTime":"(.*","created_time":(.*"',re.S)
msg_time = re.findall(abtract_pattern,str(text))
if msg_time!=[]:
# 2、如果作者说说有文字,那么检查是否有转发内容
msg = str(msg_time[0][0])
sendTime = str(msg_time[0][1])
abtract_pattern = re.compile('\}\],"content":"(.*"},"rt_createTime":"(.*","',re.S)
text = text.split("created_time")[1]
msg_time2 = re.findall(abtract_pattern,str(text))
#合并发送内容 格式:评论+转发内容
if msg_time2!=[]:
msg = msg +" 转发内容:"+str(msg_time2[0][0])
else:
# 3、说说内容为空,检查是否为 =>只有图片的说说 or 转发,不配文字
#获取正文发送时间 (发送时间分为:正文发送时间 or 转发时间)
abtract_pattern = re.compile('"conlist":null,"content":"","createTime":"(.*",',re.S)
msgNull_time = re.findall(abtract_pattern,str(text))
if msgNull_time!=[]:
#如果有正文发送时间,那么就是这条说说仅含有图片 =>只有图片的说说
msg = "图片"
sendTime = str(msgNull_time[0])
else:
#如果没有正文发送时间,那么就是说这条说为 =>转发,不配文字
abtract_pattern = re.compile('\}\],"content":"(.*"},"rt_createTime":"(.*","',re.S)
msg_time = re.findall(abtract_pattern,str(text))
msg =" 转发内容:"+str(msg_time[0][0])
sendTime = str(msg_time[0][1])
#写入本地文件
#f.write('{},{},{},{}\n'.format(str(QQname),str(QQnum),sendTime,msg))
print(str(count)+" : "+str(QQname)+" : "+str(QQnum)+" : "+sendTime+" : "+msg)
count = count + 1
begin = begin + 40
def getGTK(cookie):
hashes = 5381
for letter in cookie['p_skey']:
hashes += (hashes << 5) + ord(letter)
return hashes & 0x7fffffff
startSpider()
print("爬取结束")
总结
以上所述是小编给大家介绍的Python爬取qq空间说说的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年11月08日
2025年11月08日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]