【问题标题】:Python feedparser not returning any entriesPython feedparser 不返回任何条目
【发布时间】:2018-03-31 15:10:57
【问题描述】:

在过去的一周里,我一直在使用 feedparser 浏览 RSS 提要。今天使用它时,我的整个程序无法运行,我注意到错误似乎出现在程序开始时,当我获得要循环的提要长度时。

因此,例如,如果我要循环浏览 BBC 提要,程序会运行:

import feedparser

bbc = feedparser.parse('http://feeds.bbci.co.uk/news/rss.xml?edition=uk')

运行此程序时,我完全没有从后面的代码中得到任何输出。甚至没有错误消息。以前,我会在 RSS 提要上获得所有的头条新闻。这只是今天突然停止工作。它在前一周工作。我尝试了其他 RSS 提要,但它们也显示为空白。

关于什么可能是错误的任何想法?

【问题讨论】:

  • 您的代码对我来说运行良好。可能有一些速率限制?尝试使用curl http://feeds.bbci.co.uk/news/rss.xml?edition=uk 进行检查
  • 卷曲是什么意思?我确实考虑过速率限制,但这绝对没有意义。我每天最多做 20 次,最多一周。是不是太过分了?
  • 好的,所以只需运行这个 python 代码:import requests a = requests.get('http://feeds.bbci.co.uk/news/rss.xml?edition=uk') print(a.text) 并检查输出。
  • 好的。我收到错误消息:ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it。我想我的请求被拒绝了?没觉得过分。除非是我的防火墙设置等发生了我不知道的更改?
  • 用谷歌搜索修复了它。出于某种原因,我在 Internet Explorer 中的代理设置(我从未在……曾经……中使用过)发生了变化。那是限制连接,显然是从那里的设置运行的。

标签: python rss feedparser


【解决方案1】:

您可以将此代码用于合理的错误消息:

import feedparser

bbc = feedparser.parse('http://feeds.bbci.co.uk/news/rss.xml?edition=uk')
if bbc.status == 200:
    numberOfHeadlines = len(bbc['entries'])

    for i in range(0,numberOfHeadlines):
        print(bbc['entries'][i]['title'])
else:
    print("Some connection error", bbc.status)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多