0 python python-2.7 hacker-news-api
Hacker News 发布了一个 API,我如何在 Python 中使用它?
我想要获得所有热门帖子。我尝试使用urllib,但我认为我做得不对。
这是我的代码:
import urllib2
response = urllib2.urlopen('https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty')
html = response.read()
print response.read()
Run Code Online (Sandbox Code Playgroud)
它只是打印空
''
Run Code Online (Sandbox Code Playgroud)
我错过了一行,更新了我的代码。
正如@jonrsharpe 所解释的,read()这只是一次操作。因此,如果您打印html,您将获得所有 id 的列表。如果您浏览该列表,则必须再次发出每个请求才能获取每个 id 的故事。
首先,您必须将接收到的数据转换为 python 列表并遍历所有数据。
base_url = 'https://hacker-news.firebaseio.com/v0/item/{}.json?print=pretty'
top_story_ids = json.loads(html)
for story in top_story_ids:
response = urllib2.urlopen(base_url.format(story))
print response.read()
Run Code Online (Sandbox Code Playgroud)
除了所有这些,您还可以使用haxor,它是 Hacker News API 的 Python 包装器。以下代码将获取热门故事的所有 id:
from hackernews import HackerNews
hn = HackerNews()
top_story_ids = hn.top_stories()
# >>> top_story_ids
# [8432709, 8432616, 8433237, ...]
Run Code Online (Sandbox Code Playgroud)
然后您可以遍历该循环并打印所有它们,例如:
for story in top_story_ids:
print hn.get_item(story)
Run Code Online (Sandbox Code Playgroud)
免责声明:我写的haxor。
| 归档时间: |
|
| 查看次数: |
3312 次 |
| 最近记录: |