Golang知乎xx API:收藏回答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang知乎xx API:收藏回答相关的知识,希望对你有一定的参考价值。
搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/spider/zhihu.html
项目地址:https://github.com/hunterhug/zhihuxx
项目:知乎xx API
已实现功能:
- 通过单个问题id获取批量答案
- 通过集合id获取批量问题后获取批量答案
- 关注别人(风险大容易被封杀去除,xxxx)
- 登录(验证码问题去除,xxxx),待人工破解验证码
- 通过答案id获取单个回答 (鸡肋,弃用)
待实现功能:
- 根据用户唯一域名id获取她(它)他的全部回答(有用,优先级高
- 根据用户唯一域名id获取其关注的人,和关注她的人
一.小白指南
Golang开发的爬虫,小白用户请下载main
文件夹下的zhihu_windows_amd64.exe
,并在同一目录下新建一个cookie.txt
文件,
打开火狐浏览器后人工登录知乎,按F12,点击网络,刷新一下首页,然后点击第一个出现的GET /
,找到消息头请求头,复制Cookie,然后粘贴到cookie.txt
点击EXE后,可选JS解决防盗链(这个是你要发布到自己的网站如:减肥成功是什么感觉?给生活带来哪些改变?) 我们自己本地看的话就不要选择防盗链了!回答个数已经限制不大于500个。如果没有答案证明Cookie失效,请重新按照上述方法手动修改cookie.txt
。
单问题模式:
zhihu_linux_x86_64
-----------------
知乎问题信息小助手
功能:
1. 可选抓取图片
2. 抓取答案
3. 可选关注小伙伴
选项:
1. 从收藏夹https://www.zhihu.com/collection/78172986批量获取很多问题答案
2. 从问题https://www.zhihu.com/question/28853910批量获取一个问题很多答案
请您按提示操作(Enter)!答案保存在data文件夹下!
因为知乎防盗链,放在你的网站上是看不见图片的!
但是本地查看是没问题的!可选择防盗链生成html
如果什么都没抓到请往exe同级目录cookie.txt
增加cookie,手动增加cookie见说明
你亲爱的萌萌~
太阳萌飞了~~~
-----------------
萌萌:你要发布到自己的网站上吗(JS解决防盗链)Y/N(默认N)
y
萌萌:要抓取图片吗Y/N(默认N)
n
萌萌:从收藏夹获取按1,从问题获取按2(默认)
2
萌萌说亲爱的,因为回答实在太多,请限制获取的回答个数:30(默认)
499
萌萌:请输入问题ID:
57000057
预抓取第一个回答!
开始处理答案:文末更新了! 啊我被你们叫小姐姐叫的心都化了! -- 我174cm 49kg 题主你这个身材超招人羡慕了好吗! 个子高走什么风格不重要,主要是要简单,简单,简单。 以大面积纯色为主,过多的花纹和图案都会让觉得“巨婴”“傻大个”。款式也是越简单越好,有一些设…
哦,这个问题是:个子较高的女生怎么穿搭?
保存答案成功:data/57000057/chen-jian-guo-he-li-zi-165635365/chen-jian-guo-he-li-zi-165635365的回答.html
批量抓取答案,默认N(Y/N)
y
开始处理答案:5.10号 微博:Chilli-M 这么久了还没沉底儿既然这样大噶多多点赞关注好不啦~ 你们看看排我后头的赞都比我多两倍带拐弯儿! 争气啊朋友们! 实在没什么穿搭发 发最近的一点日常 …………………………………………………更新~~ ~~~~~~~~~~~~~…
保存答案成功:data/57000057/ma-tian-jiao-92-155865780/ma-tian-jiao-92-155865780的回答.html
上帝模式
萌萌:从收藏夹获取按1,从问题获取按2(默认)
1
萌萌说亲爱的,因为回答实在太多,请限制获取的回答个数:30(默认)
499
萌萌:请输入集合ID:
78172986
开启上帝模式吗(一路抓到底),默认N(Y/N)?
y
抓取收藏夹第1页
抓取收藏夹第2页
抓取收藏夹第3页
...
结果:
目录结构及获取的数据如下:
--- zhihu_windows_amd64.exe 生成的数据在data文件夹
--- zhihu_linux_x86_64
--- cookie.txt
--- data
--- 27761934-如何让自拍的照片看上去像是别人拍的?.xx *去重标志
--- 27761934 * 回答文件集
---zhi-zhi-zhi-41-89-167963702 * 一个用户的回答 包括图片
--- zhi-zhi-zhi-41-89-167963702的回答.html
--- https###pic1.zhimg.com#v2-22407b227c9a7a19aa0057f38bf6e754_r.png
https###pic1.zhimg.com#v2-7782ff69838c379173415458b97b5008_xll.jpg
https###pic1.zhimg.com#v2-c41bf767819fbc61b3ff7bb4c2900884_r.jpg
---zhi-zhi-wei-zhi-zhi-36-38-164986419
---zhi-zhi-wei-zhi-zhi-hu-hu-wei-hu-hu-164880780
--- 27761934-html 生成的html集,可以点击查看
--- 1.html
--- 2.html
如果要重新获取答案,请将.xx
文件去掉
二.API说明
下载
go get -u -v github.com/hunterhug/zhihuxx
此包在哥哥封装的爬虫包基础上开发:土拨鼠(tubo),请进入main
文件夹运行成品程序,IDE
开发模式下,运行路径是不一样的,请在IDE
项目根目录放cookie.txt
文件
二次开发时你只需import
本包。
import zhihu "github.com/hunterhug/zhihuxx"
API如下:
// 设置cookie,需传入文件位置,文件中放cookie
func SetCookie(file string) error
// 构造问题链接,返回url
func Question(id string) string
// 抓答案,需传入限制和页数,每次最多抓20个答案
func CatchAnswer(url string, limit, page int) ([]byte, error)
// 结构化回答,返回一个结构体
func StructAnswer(body []byte) (*Answer, error)
// 抓取收藏夹第几页列表
func CatchCoolection(id, page int) ([]byte, error)
// 抓取全部收藏夹页数,并返回问题ID和标题
func CatchAllCollection(id int) map[string]string
// 解析收藏夹,返回问题ID和标题
func ParseCollection(body []byte) map[string]string
// 输出HTML选择防盗链方式
func SetPublishToWeb(put bool)
// 输出友好格式HTML,返回问题ID,回答ID,标题,作者,还有HTML
func OutputHtml(answer DataInfo) (qid, aid int, title,