本项目致力于为Qzone中的信息使用Python抓取提供开箱可用的代码模块。
qzone_login.py
提供QQ空间二维码登录功能。
调用get_sessions()
函数后会判断当前目录中是否存在session.pickle
。如果没有在项目目录下生成qr.png
登录二维码文件,使用手机扫描后即可登录。该函数返回requests.session
对象,并在当前目录下生成session.pickle
保存Session
对象。如果存在session.pickle
文件则直接读取其中的内容。
QQ空间的登陆状态保持时间较短,如果需要重新登录,请手动删除
session.pickle
文件。
qzone_api_spider.py
中的get_active_feeds(s, qzonetoken, gtk_num, n=1)
函数用来获取QQ空间中的最新说说。
该函数所需的参数分别为:
- s request.Session对象,可以通过
get_sessions()
获取 - qzonetoken 通过调用
get_qzonetoken(s)
函数获取 - gtk_num 通过调用
get_gtk(s)
函数获取 - n 获取说说循环次数。单次循环会获得9或10条说说,默认为1,可根据需求自行修改
该函数返回由说说组成的list
对象,可通过遍历获取每一条的详细信息。
qzone_api_spider.py
中的get_person_feeds(s, gtk_num, uin, qzonetoken, n=1)
函数用来获取QQ空间中的以时间正序排列说说(即从账号第一条说说开始获取)。
该函数主要用于获取自己的所有说说,也可以获取他人的说说。但后者经常由于QQ空间的权限设置导致失败。故而不建议使用此函数爬取他人说说。
该函数所需的参数分别为:
- s request.Session对象,可以通过
get_sessions()
获取 - qzonetoken 通过调用
get_qzonetoken(s)
函数获取 - gtk_num 通过调用
get_gtk(s)
函数获取 - uin 所需爬取的QQ号
- n 获取说说循环次数。单次循环会获得20条说说,默认为1,可根据需求自行修改
该函数返回由说说组成的list
对象,可通过遍历获取每一条的详细信息。
注意: 该函数可通过更改内部参数实现抓取他人说说,具体实现方式为更改
param
中的pos
参数,将其设为0,可以获取有权限限制的他人说说。
qzone_api_spider.py
中的get_feeds(s, qzonetoken, gtk_num, uin, n=1)
函数用来获取QQ空间中的以时间逆序排列说说(即从账号第新说说向前获取)。
该函数主要用于获取可进入空间的最新说说。该函数基本适用于一切有权限访问的QQ空间。你可以使用该函数比较完整的获取特定朋友的最新说说。但该函数也存在一定问题,即如果您对说说展示有限制的好友使用,调整n
参数也无法获取更多说说,反而会导致多次获取同一说说。在此处举一个例子,如果您的朋友仅展示5条说说,您将n
设置为2(理论上可以获取12条说说),但实际得到的说说数量为5条说说各重复一次,请在后期数据清洗时注意此重复数据问题。
该函数所需的参数分别为:
- s request.Session对象,可以通过
get_sessions()
获取 - qzonetoken 通过调用
get_qzonetoken(s)
函数获取 - gtk_num 通过调用
get_gtk(s)
函数获取 - uin 所需爬取的QQ号
- n 获取说说循环次数。单次循环会获得6条说说,默认为1,可根据需求自行修改
该函数返回由说说组成的list
对象,可通过遍历获取每一条的详细信息。
qzone_api_spider.py
中的get_likes_info(uin, key, gtk_num, s)
函数用来获取QQ空间中的个人说说的详细点赞信息,包括但不限于所有点赞者的QQ号码、QQ昵称、点赞时间。
注意:该函数无法获取他人说说的具体点赞情况
该函数所需的参数分别为:
- s request.Session对象,可以通过
get_sessions()
获取 - gtk_num 通过调用
get_gtk(s)
函数获取 - uin 个人QQ号
- key 说说的
curlikekey
或称orglikekey
,可在get_feeds
系列函数(即get_person_feeds
、get_feeds
及get_active_feeds
)的返回值中获取
该函数返回为指定说说点赞人的详细信息组成的list
对象,可通过遍历获取每一条的点赞人详细信息。