1625-5 王子昂 总结《2018年3月18日》 【连续第533天总结】
A. QQ资料爬虫
B.
通过接口爬取指定QQ的信息
接了个单子,要求获取表格中的指定QQ的相关信息
最先想到的思路是HookQQ的资料窗口相关的函数,通过注入Dll来调用,然后直接找到内存中的数据,获取即可
后来查了一下发现更简便的思路:通过上古时期手Q/webQQ遗留下的接口来post数据获取
为什么不从PC端QQ的接口下手是因为OICQ的协议太恐怖了~又不是专职做这种单子的,暂时没必要花心思研究这个吧
查了一下找到一个ti.qq.com的接口
http://ti.qq.com/cgi-bin/more_profile_card/more_profile_card
post三个参数_q, bkn, src即可返回对应的数据
于是用python3写了个成品,值得一提的是需要提供登录后的cookies,否则会返回错误
核心获取功能如下:
def getBKN(skey):
base = 5381
for i in range(len(skey)):
base += (base<<5) + ord(skey[i])
return base & 2147483647
def getInfo(qq, cookies):
url = "http://ti.qq.com/cgi-bin/more_profile_card/more_profile_card"
BKN = getBKN