1.依赖情况
项目基于windows10下python3.5,未在其他系统及版本上试过。
需要事先安装requests
库和flask
库,未安装的分别使用下面两条命令安装
pip install requests
pip install Flask
2.使用步骤
分为如下几个步骤
- 下载文件到本地
- 修改settings.py中的
HEADERS
中的cookie
为自己登陆知乎时使用的cookie
- 在
run.py
所在文件夹下打开cmd - 在cmd中输入下面命令
python run.py
(不需要等待上面程序运行结束,因为你不终止,它不会自己结束)之后在浏览器中打开下面链接
http://localhost:1234
应该可以看到这个界面
点击其中的实例链接可以看到这个页面(需要等待几秒)
结果按照点赞数排序。question和topic的id自行修改,即可获得对应主题的回答者运营的公众号。后面的数字是查找数量,值越大会找到越多的公众号。
如果要终止程序在命令行界面按Ctrl + C
类似主题的话题或者问题很大程度上会找到相同的回答者,为了防止每次请求结果高度重合,进行了去重的优化处理。启动项目时改用
python run.py -c T
其中T
可以替换为任意字符
这样启动后,第一次在浏览器打开
http://localhost:1234/topic/19552832/100
显示结果和之前相同,同时项目文件中多出3个json文件。
如果此时刷新页面,则不会有内容产生,因为页面上只会展示之前没有展示过的回答者,此时需要增大查找数量,如下
http://localhost:1234/topic/19552832/200
这时得到的是100-200之间的查找内容(之前的启动方式会重新爬0-200)。
如果换一个主题或者换成一个问题
http://localhost:1234/topic/19550228/50
http://localhost:1234/question/20799742/50
则还是从该主题或问题的第一个回答开始寻找,但是之前出现过的公众号都不会重新出现(新产生的回答者会与存储在文件中的回答者进行对比,只有新回答者才会呈现在页面上)。
如果想看之前出现过的公众号,可以到check_url.json
文件中查看,这里存储了出现过的所有运营公众号的回答者信息。
如果想要在浏览器中显示之前抓取过的内容,需要在命令行中Ctrl+C
退出程序,然后运行
python delete_json.py
这样就会删除所有之前爬虫中生成的json文件,然后再启动项目
python run.py -c T
更多使用流程参考知乎博文
2018.5.26 运行run.py文件时自动打开浏览器