webhose.io REST API的简单客户端库
项目描述
从您的Python代码中访问webhose.io API的简单方法
import webhose
webhose.config(token=YOUR_API_KEY)
for post in webhose.search("github"):
print(post.title)
API密钥
要使用webhose.io API,您需要获取一个在每次请求中使用的令牌。要获取API密钥,请创建https://webhose.io/auth/signup上的账户,然后进入https://webhose.io/dashboard以查看您的令牌。
安装
您可以从源安装
$ git clone https://github.com/Buzzilla/webhose-python
$ cd webhose-python
$ python setup.py install
使用API
要开始,您需要导入库并设置您的访问令牌。(将YOUR_API_KEY替换为您实际的API密钥)。
>>> import webhose
>>> webhose.config(token=YOUR_API_KEY)
现在您可以进行请求并检查结果
>>> r = webhose.search("foobar")
>>> r.total
62
>>> len(r.posts)
62
>>> r.posts[0].language
'english'
>>> r.posts[0].title
'Putting quotes around dictionary keys in JS'
为了方便起见,Response对象是可迭代的,因此您可以遍历它并获取所有结果。迭代器将创建额外的API请求以获取额外页面。
>>> total_words = 0
>>> for post in r:
... total_words += len(post.text.split(" "))
...
>>> print(total_words)
56006
警告:如果您的搜索结果很多,此方法可能会耗尽您的积分。
完整文档
config(token)
token - 您的API密钥
search(query, token=None)
query - 搜索查询,可以是搜索字符串或查询对象
token - 如果您想,可以直接向搜索函数提供API密钥
查询对象
查询对象对应于https://webhose.io/use上出现的高级搜索选项
查询对象具有以下成员
all_terms - 字符串列表,所有这些都必须出现在结果中
some_terms - 字符串列表,其中一些必须在结果中显示
phrase - 必须在结果中完全匹配的短语
exclude - 不应出现在结果中的术语
site_type - discussions、news、blogs 中的一个或多个
language - 一个或多个语言名称,小写英文
site - 一个或多个站点名称,仅顶级(即,yahoo.com,而不是news.yahoo.com)
title - 必须出现在标题中的术语
body_text - 必须出现在正文中的术语
查询对象实现了 __str__() 方法,该方法显示结果搜索字符串。
响应对象
响应对象具有以下成员
total - 与此搜索匹配的帖子总数
more - 未包含在此响应中的帖子数量
posts - 帖子对象的列表
next - 此搜索的下一页结果页面的URL
response - 原始 requests 响应
get_next() - 获取下一页结果的方法。返回新的响应对象
响应对象实现了 __iter__() 方法,可用于遍历与查询匹配的所有帖子。(自动获取页面)
帖子对象和线程对象
帖子对象和线程对象包含从API返回的实际数据。有关它们的结构,请参阅 https://webhose.io/documentation。
轮询
如果您想进行重复搜索,在出现新结果时执行操作,请使用以下代码
r = webhose.search("skyrim")
while True:
for post in r:
perform_action(post)
time.sleep(300)
r = r.get_next()
项目详情
webhose-0.1.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d96bda569e7a36da2884ecff03c26a5f3b9267176114ec18aa9f9d3cbddf238 |
|
MD5 | c19e2309336b06298f19db94e9282177 |
|
BLAKE2b-256 | ed5b6226f7cdf021ad1faf9967dc58247161233e09aa36ba71a6e4dab75fd7f2 |