去年我们做过一个叫「学长问答」的社群活动,里面沉淀了大量有价值的互动信息,后来因为各种原因终止了。今天和涂腾聊起来,觉得这些信息就这么沉寂了太浪费。所以就试着用python爬取了知识星球的内容。
这个过程又学习了一些新的知识,已经在代码中以批注的形式写出。但还有一个没有解决的问题,就是一个提问底下可以跟好几个评论,我暂时还不能在输出结果里将「一个提问+n个评论」以整体的形式给出,而只能把评论的信息以一个字典的形式展现,这算是没有爬取的太彻底。将来再看看有没有新的解决方法。
import requests
import json
import urllib
import csv
#头信息。网站只提供扫码登陆的方式,没有账号密码。我以为应该比较麻烦,但在header信息里找到了Authorization信息之后,直接可以保持登陆状态了。
# 令一个标志是直接在浏览器里访问内页网址的话,浏览器的报错是“{"succeeded":false,"code":401,"info":"","resp_data":{}}”,这个很像原来node.js的数据中心没有登陆的报错,而数据中心的模拟登陆也是通过在header中添加Authorization来实现的。
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'Referer': 'h