背景
想快速地提取 组队学习 知识星球打卡的信息
在原有的基础上进行改良,此处附上链接 Python 知识星球爬虫(一) 根据 topic > comment 爬取数据
遇到的难点
- 超过30条评论的数据如何获取
- user-agent + cookie 绑定登陆
调试代码的时候可以把标星的地方都加上
- 正则表达式匹配评论内容
re.match
,现在改成re.findall
- 时间url编码问题,有待解决~~
说明
详细实现代码
代码不难,并且加了备注~~~
# 前面3个函数
def get_group_topics(headers, groups_id):
def get_topics_comments(headers, topics_id, begin_time=None):
def get_comments_count(headers, topics_id):
总体的思路都是:
- requests请求获取text数据
- text数据转成dict格式的数据
- 按需提取dict中的数据
def main():
最后通过main()将所有的逻辑组织起来
详细代码可以查看 Github
输出结果如下:
局部结果展示
使用方法
- 确认运行环境
Python2
或者Python3
; - 代码23~26行,
user-agent
和cookie
的修改; - 代码137行,根据学习小组,修改
get_group_topics
的信息。
获取Headers 和 cookies的方法
Headers
谷歌浏览器F12
开发者模式,搜索 topic 然后看结果
image.png
cookies
我安装了google插件 点击跳转
image.png
主要的cookie中主要的key有2个 UM_distinctid
和 zsxq_access_token
。如果找不到 UM_distinctid
,那将cookie中key和value都加上