推广一波我用 Python 写的知乎爬虫(?)

2018-08-19 00:12:23 +08:00
 Cheez

一直混知乎,看了很多大神写的爬虫,手痒写了个相关的项目:ZhihuVAPI 既然是 Python 写的,那么第一要素就是优雅 这个项目的优雅体现在以下方面:

import ZhihuVAPI as zhihu
print(zhihu.Article('https://zhuanlan.zhihu.com/p/42381257').column.author.name)

获取列表的所有项

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 支持以下三种初始化:

  1. URL 初始化:zhihu.People('https://www.zhihu.com/people/iCheez/activities')
  2. ID 初始化:zhihu.People('e4f87c3476a926c1e2ef51b4fcd18fa3')
  3. URL_Token 初始化(仅对用户对象有效):zhihu.People('iCheez')

如果你看了有兴趣的话可以去我的 Github 主页看一下: https://github.com/CheezOne/ZhihuVAPI

6092 次点击
所在节点    Python
32 条回复
coffeSlider
2018-08-19 00:22:17 +08:00
提个小建议,这种小东西就别发布了哈。
另外,据我所知,v2 一部人 (包括本人) 很嫌弃知乎的。
batnss
2018-08-19 00:26:52 +08:00
1L 给了-1 我给楼主加回来 逃~~
diggerdu
2018-08-19 00:38:04 +08:00
挺漂亮的
mingyun
2018-08-19 00:40:57 +08:00
ps:ZhihuVAPI 这个命名方式有点怪
Cheez
2018-08-19 01:49:09 +08:00
@mingyun 咳咳,可能是因为好名字都被别人用了
Trim21
2018-08-19 01:56:10 +08:00
看楼主问了不少问题,终于看到成果了…
Trim21
2018-08-19 02:02:46 +08:00
最后智能提示的问题还没解决吗…
eastrd
2018-08-19 08:22:39 +08:00
很支持楼主,但有个问题,这个爬虫的设计有多 robust ?
另外代理和多线程方面有支持吗?
ddzzhen
2018-08-19 08:31:25 +08:00
支持楼主,只要是原创的东西就挺好的
easylee
2018-08-19 08:45:53 +08:00
强!
llllllLllll
2018-08-19 08:46:08 +08:00
支持楼主,我觉着分享不论大小
yanzixuan
2018-08-19 09:15:59 +08:00
@coffeSlider 嫌弃+1, 但是知乎早期的一些回答还是不错的。
Cheez
2018-08-19 09:51:58 +08:00
@Trim21 上面👆代码有,直接标注:

p:zhihu.People

只能这样了
Cheez
2018-08-19 09:52:41 +08:00
@eastrd 啥都没有这只是初成品哈哈哈,未来也不知道会不会完善地支持,所以我上面的爬虫加了个(?)
Cheez
2018-08-19 10:16:59 +08:00
挽尊
Cheez
2018-08-19 10:51:23 +08:00
挽尊*2
agagega
2018-08-19 10:59:54 +08:00
直接调从浏览器里摸索出来的知乎 API 是不是比查网页更容易被封?
toarya
2018-08-19 11:39:00 +08:00
可以的,能解密 chrome 的 cookie
noneface
2018-08-19 12:37:08 +08:00
pywin32? 只支持 Windows 吗?
Cheez
2018-08-19 13:09:11 +08:00
@agagega #17 被封是什么意思?意思是 API 地址变动吗?还是说爬太久被封?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX