首页 > 代码库 > Golang知乎xx API:收藏回答
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,需传入文件位置,文件中放cookiefunc SetCookie(file string) error // 构造问题链接,返回urlfunc 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,标题,作者,还有HTMLfunc OutputHtml(answer DataInfo) (qid, aid int, title,