Python中如何实现知乎爬虫并推广?
一直混知乎,看了很多大神写的爬虫,手痒写了个相关的项目:ZhihuVAPI 既然是 Python 写的,那么第一要素就是优雅 这个项目的优雅体现在以下方面:
- 调用时属于链式调用,因此你可以轻易写出这种代码:
import ZhihuVAPI as zhihu
print(zhihu.Article('https://zhuanlan.zhihu.com/p/42381257').column.author.name)
-
开箱即用,默认使用 Chrome 的 Cookies 你不需要任何设置和登录,引用后直接使用
-
内容获取自由度高
获取列表的所有项
import ZhihuVAPI as zhihu
self=zhihu.People('iCheez')
for a in self.answers():
a:zhihu.Answer # 让 IDE 智能提示
print(a.excerpt)
获取列表的指定数量的项
import ZhihuVAPI as zhihu
self=zhihu.People('iCheez')
for a in self.answers(5):
a:zhihu.Answer # 让 IDE 智能提示
print(a.excerpt)
获取列表的从某处开始的指定数量的项
import ZhihuVAPI as zhihu
self=zhihu.People('iCheez')
for a in self.answers(count=5,start=50):
a:zhihu.Answer # 让 IDE 智能提示
print(a.excerpt)
获取列表的从某页开始的指定数量的项
import ZhihuVAPI as zhihu
self=zhihu.People('iCheez')
for a in self.answers(count=5,page=2):
a:zhihu.Answer # 让 IDE 智能提示
print(a.excerpt)
这些操作都只需要调整一两个参数就可以实现.
而且,ZhihuVAPI 支持以下三种初始化:
- URL 初始化:zhihu.People('https://www.zhihu.com/people/iCheez/activities')
- ID 初始化:zhihu.People('e4f87c3476a926c1e2ef51b4fcd18fa3')
- URL_Token 初始化(仅对用户对象有效):zhihu.People('iCheez')
如果你看了有兴趣的话可以去我的 Github 主页看一下: https://github.com/CheezOne/ZhihuVAPI
Python中如何实现知乎爬虫并推广?
提个小建议,这种小东西就别发布了哈。
另外,据我所知,v2 一部人 (包括本人) 很嫌弃知乎的。
我无法理解你的问题。
1L 给了-1 我给楼主加回来 逃~~
挺漂亮的
ps:ZhihuVAPI 这个命名方式有点怪
咳咳,可能是因为好名字都被别人用了
看楼主问了不少问题,终于看到成果了…
最后智能提示的问题还没解决吗…
很支持楼主,但有个问题,这个爬虫的设计有多 robust ?
另外代理和多线程方面有支持吗?
支持楼主,只要是原创的东西就挺好的
强!
支持楼主,我觉着分享不论大小
嫌弃+1, 但是知乎早期的一些回答还是不错的。
上面👆代码有,直接标注:
p:zhihu.People
只能这样了
啥都没有这只是初成品哈哈哈,未来也不知道会不会完善地支持,所以我上面的爬虫加了个(?)
挽尊
挽尊*2
直接调从浏览器里摸索出来的知乎 API 是不是比查网页更容易被封?
可以的,能解密 chrome 的 cookie
pywin32? 只支持 Windows 吗?
#19 咳咳,如果你要使用 Chrome 的 Cookies 的话,确实只支持 Windows
#18 可惜只能在 Windows 平台
就是把爬虫的 IP 封掉
好像只有验证码吧
<br>class Question(Container):<br> """知乎的问题对象"""<br><br> def __init__(self, id):<br> super().__init__(id, '问题', 'question')<br> if 2 == 1: # 单纯为了编辑器能智能提示<br> self.question_type = ''<br> self.created = ''<br> self.updated_time = ''<br> self.is_editable = ''<br> self.is_reportable = ''<br> self.allow_delete = ''<br> self.admin_closed_comment = ''<br> self.has_publishing_draft = ''<br> self.answer_count = ''<br> self.comment_count = ''<br> self.follower_count = ''<br> self.collapsed_answer_count = ''<br> self.comment_permission = ''<br> self.detail = ''<br> self.editable_detail = ''<br> self.status = ''<br> self.relationship = ''<br> self.topics = ''<br> self.author = ''<br> self.can_comment = ''<br> self.suggest_edit = ''<br> self.thumbnail_info = ''<br> self.review_info = ''<br> self.mute_info = ''<br>
6666
顶一波吧 star 了
#26 谢谢!
没办法…只能这样了
大神,您好,我是萌新,我想问问您,有接触过用 python 爬取 app 数据么
你直接下载个模拟器,开 fiddler 抓就行了
版本要求太高了吧 我 3.5
zhihu.info(f’People 对象 {id} ({self})初始化’)
^
SyntaxError: invalid syntax
能导出一个人的所有回答么?


