reddit的feedparser返回空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reddit的feedparser返回空相关的知识,希望对你有一定的参考价值。

我正在尝试使用带有python的feedparser来获取sub_reddit中的最新帖子。

我有下面的代码,但是当我运行它时它没有返回任何内容。

import feedparser

feed = feedparser.parse("http://www.reddit.com/r/funny/new/.rss")
#feed = feedparser.parse("http://feeds.bbci.co.uk/news/england/london/rss.xml")

feed_entries = feed.entries

for entry in feed.entries:
    article_title = entry.title
    article_link = entry.link
    article_published_at = entry.published # Unicode string
    article_published_at_parsed = entry.published_parsed # Time object
    print (article_title)
答案

我认为这与之前关于解决HTTPS RSS提要的feedparser的SSL问题相关 - https://stackoverflow.com/a/28296087/1627968

添加以下代码可以解决SSL问题:

import ssl
if hasattr(ssl, '_create_unverified_context'):
    ssl._create_default_https_context = ssl._create_unverified_context

例如,在您的代码中:

import feedparser
import ssl
if hasattr(ssl, '_create_unverified_context'):
    ssl._create_default_https_context = ssl._create_unverified_context
feed = feedparser.parse("http://www.reddit.com/r/funny/new/.rss")
#feed = feedparser.parse("http://feeds.bbci.co.uk/news/england/london/rss.xml")

feed_entries = feed.entries
for entry in feed.entries:
    article_title = entry["title"]
    article_link = entry["link"]
    print(f"{article_title}: {article_link}")

您可能想要检查每个条目使用的密钥 - 发布似乎不是其中之一,因此我在我的示例中将其删除。

另一答案

考虑改变:

article_published_at = entry.published # Unicode string
article_published_at_parsed = entry.published_parsed # Time object

至:

article_published_at = entry.updated
article_updated_parsed = entry.updated_parsed 

feed = feedparser.parse("https://www.reddit.com/r/funny/new/.rss")
for entry in feed.entries:
    article_title = entry.title
    article_link = entry.link
    article_published_at = entry.updated
    article_updated_parsed = entry.updated_parsed
    print (article_published_at)
    print (article_updated_parsed)

2018-12-10T22:26:20+00:00
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=10, tm_hour=22, tm_min=26, tm_sec=20, tm_wday=0, tm_yday=344, tm_isdst=0)
...

另外,请确保使用https协议,以防feedparser不正确地遵循http-> https重定向。

以上是关于reddit的feedparser返回空的主要内容,如果未能解决你的问题,请参考以下文章

Android Java:在 onCreateView() 中返回空视图的片段

Android,从其他片段返回的空列表视图

在 FragmentPagerAdapter 上调用 getItem() 时,它返回一个空片段

Fragment 的 GetTag 返回空对象引用

片段中的TextView在Android Studio中返回Null

工具栏视图引用从对话框片段返回后变为空