推广一波我用 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 条回复
Cheez
2018-08-19 13:09:45 +08:00
@noneface #19 咳咳,如果你要使用 Chrome 的 Cookies 的话,确实只支持 Windows
Cheez
2018-08-19 13:20:00 +08:00
@toarya #18 可惜只能在 Windows 平台
agagega
2018-08-19 15:03:05 +08:00
@Cheez 就是把爬虫的 IP 封掉
Cheez
2018-08-19 15:34:59 +08:00
@agagega 好像只有验证码吧
lihongjie0209
2018-08-19 17:43:48 +08:00
```
class Question(Container):
"""知乎的问题对象"""

def __init__(self, id):
super().__init__(id, '问题', 'question')
if 2 == 1: # 单纯为了编辑器能智能提示
self.question_type = ''
self.created = ''
self.updated_time = ''
self.is_editable = ''
self.is_reportable = ''
self.allow_delete = ''
self.admin_closed_comment = ''
self.has_publishing_draft = ''
self.answer_count = ''
self.comment_count = ''
self.follower_count = ''
self.collapsed_answer_count = ''
self.comment_permission = ''
self.detail = ''
self.editable_detail = ''
self.status = ''
self.relationship = ''
self.topics = ''
self.author = ''
self.can_comment = ''
self.suggest_edit = ''
self.thumbnail_info = ''
self.review_info = ''
self.mute_info = ''
```


6666
bpllzbh
2018-08-19 17:52:18 +08:00
顶一波吧 star 了
Cheez
2018-08-19 18:39:17 +08:00
@bpllzbh #26 谢谢!
Cheez
2018-08-19 19:16:42 +08:00
@lihongjie0209 没办法......只能这样了
viho
2018-08-19 19:49:27 +08:00
大神,您好,我是萌新,我想问问您,有接触过用 python 爬取 app 数据么
Cheez
2018-08-20 01:14:38 +08:00
@viho 你直接下载个模拟器,开 fiddler 抓就行了
mingyun
2018-08-25 18:48:18 +08:00
版本要求太高了吧 我 3.5
zhihu.info(f'People 对象 {id} ({self})初始化')
^
SyntaxError: invalid syntax
jin6220
2018-09-06 17:55:17 +08:00
能导出一个人的所有回答么?

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

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

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

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

© 2021 V2EX