首页

文章

如何用爬虫爬取知乎专栏信息

发布网友 发布时间:2022-04-19 09:50

我来回答

2个回答

热心网友 时间:2022-04-18 10:26

访问上面的URI,浏览器地址栏里直接粘贴也行,得到的返回JSON数据就包含了专栏关注数。
不管AngularJS还是其它架构,都是服务端的东西,再天花乱坠的服务端架构,到了客户端终究逃不脱HTTP协议,至少目前来说还是如此。
顺便分享一些关于爬知乎的东西。
目前来说还没有官方API的支持,可能最有用的也就是用户的“个性网址”(好别扭,下称UID)了,譬如黄继新老师的UID: jixin,不过可以由用户本人修改,但每个用户一定唯一。
以{{%UID}}代替相应的UID。
1. 获得用户专栏入口:

URI: http://www.知乎.com/people/{{%UID}}/posts GET/HTTP 1.1
XPATH: //div[@id='zh-profile-list-container']

解析上述内容,可获得该用户所有的专栏入口地址。
2. 获得专栏文章信息:

URI: http://zhuanlan.知乎.com/api/columns/{{%UID}}/posts?limit={{%LIMIT}}&offset={{%OFFSET}} GET/HTTP 1.1

{{%LIMIT}}: 表示该次GET请求获取数据项的数量,即专栏文章信息数量。我没有具体测试过最大值为多少,但是可以设置为比默认值大。默认值为10。
{{%OFFSET}}: 表示该次GET请求获取数据项的起始偏移。
解析上述内容,可以获得每篇专栏文章的信息,比如标题、题图、专栏文章摘要、发布时间、赞同数等。该请求返回JSON数据。
注意:解析该信息时,可以获得该篇专栏文章的链接信息。
3. 获得专栏文章:

URI: http://zhuanlan.知乎.com/api/columns/{{%UID}}/posts/{{%SLUG}} GET/HTTP 1.1

{{%SLUG}}: 即为2中获得的文章链接信息,目前为8位数字。
解析上述内容,可以获得专栏文章的内容,以及一些文章的相关信息。该请求返回JSON数据。
上述这些应该足够满足题主的要求了。最重要的还是要善用Chrome调试工具,此乃神器!
* * * * * * * * * *
以下是一些零散的更新,用于记录知乎爬虫的想法。当然,相关实现还是要尊重ROBOTS协议,可以通过http://www.知乎.com/robots.txt查看相关参数。
UID是对应该用户所有信息的入口。
虽然用户信息有修改间隔*(通常为若干月不等),但考虑到即使是修改用户名的操作也会使得UID变更,进而令先前的存储失效。当然这也是可以突破的:用户hash。这个hash值为32位字符串,对每个账号是唯一且不变的。
通过UID获得hash:

URI: http://www.知乎.com/people/%{{UID}} GET/HTTP 1.1
XPATH: //body/div[@class='zg-wrap zu-main']//div[@class='zm-profile-header-op-btns clearfix']/button/@data-id

解析上述内容,可获得UID对应的hash值。(没错,这个值就是存在“关注/取消关注”这个按钮里的。)这样即可唯一标识用户。
目前还没有找到方法通过hash_id获得UID,但是有间接方法可以参考:通过关注列表定期检查用户信息是否变更,当然关注/取消关注操作也可以自动化:

关注操作
URI: http://www.知乎.com/node/MemberFollowBaseV2 POST/HTTP 1.1
Form Data
method: follow_member
params: {"hash_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
_xsrf: <xsrf>

取消关注操作
URI: http://www.知乎.com/node/MemberFollowBaseV2 POST/HTTP 1.1
Form Data
method: unfollow_member
params: {"hash_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
_xsrf: <xsrf>

知乎爬虫需要一份UID列表才能正常运转,如何获得这份列表是一个需要考虑的问题。目前一个可行的想法是选定若干大V用户,批量爬取其被关注列表。举例来说,张公子目前被关注数达到58W+,通过:
URI: http://www.知乎.com/node/ProfileFollowersListV2 POST/HTTP 1.1
Form Data
method: next
params: {"offset": {{%OFFSET}}, "order_by": "hash_id", "hash_id": "{{%HASHID}}"}
_xsrf: <xsrf>

每次可以获得20条关注者的用户信息。这些信息中包含hash_id、用户名、UID、关注/被关注数、、提问数、回答数等。

热心网友 时间:2022-04-18 11:44

推荐个很好用的软件,我也是一直在用的,就是前嗅的ForeSpider软件,
我是一直用过很多的采集软件,最后选择的前嗅的软件,ForeSpider这款软件是可视化的操作。简单配置几步就可以采集。如果网站比较复杂,这个软件自带爬虫脚本语言,通过写几行脚本,就可以采集所有的公开数据。
软件还自带免费的数据库,数据采集直接存入数据库,也可以导出成excel文件。
如果自己不想配置,前嗅可以配置采集模板,我的模板就是从前嗅购买的。
另外他们公司不光是软件好用,还有自己的数据分析系统,直接采集完数据后入库,ForeSpider内部集成了数据挖掘的功能,可以快速进行聚类分类、统计分析等,采集结果入库后就可以形成分析报表。
最主要的是他采集速度非常快,我之前用八爪鱼的软件,开服务器采,用了一个月采了100万条,后来我用ForeSpider。笔记本采的,一天就好几百万条。
这些都是我一直用前嗅的经验心得,你不妨试试。
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 用爬虫可以爬到对方微信信息跟陌陌信息吗? 新出行课堂(6)| 大家都在说的 AEB 究竟是啥? 目前驾驶辅助系统发展如何? “咖啡智能”是软硬件双螺旋进化的高智能平台 记录仪上的LDWS跟ADAS有什么区别? ADAS是什么鬼 ADAS智能辅助自动驾驶系统到底有多酷 行车记录仪adas靠谱吗 君迪汽车数据采集真的吗 ADAS高级驾驶辅助系统是什么? adas驾驶辅助是什么?, 行车记录仪adas和电子狗分别是什么意思 什么是ADAS?汽车怎么安装ADAS功能? 汽车驾驶的ADAS系统是什么? ADAS的工作工程分为哪3步? ADAS是什么? 汽车的adas先进驾驶辅助系统包含哪些?各有何功能 行车记录仪adas什么意思 ADAS指的是什么? 智能驾驶—ADAS行业分析报告 python爬虫抓取信息的问题 爬虫抓取信息的时候如何防止重复访问url的问题 如何防止网站被爬虫爬取的几种办法 怎么把爬虫爬到的信息传入elasticsearch 网络爬虫问题,关于爬虫爬到的语言 python爬虫如何二次爬取 爬虫怎么爬取word数据 如何分析网站网页爬虫爬取规则 404 Not Found 使用爬虫抓取网站,对方会察觉吗? 有哪些网站用爬虫爬取能得到很有价值的数据 一般公司用python爬虫爬取什么内容 zhuan:有哪些网站用爬虫爬取能得到很 爬虫只能爬实时数据吗 一米金沙跟黄金的色度相差多少? 金沙江为何取名为金沙江,难道江里真的有金沙吗? 成都金沙遗址的商周什么金饰图案作为什么? 金沙首饰是真金吗 一元背金沙和亮金那个好 沙金怎样提炼成黄金?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com