标签: feedparser

如何阅读RSS提要中的所有文章?

我正在使用Python feedparser从RSS提要中读取文章.但是,只能阅读第一页的文章.是否有任何其他lib /包可以读取RSS提要的所有文章?

类似问题@ SO:Feedparser - 从Google阅读器中检索旧邮件

python rss feed feedparser rss-reader

7
推荐指数
1
解决办法
1万
查看次数

Feedparser.parse()'SSL:CERTIFICATE_VERIFY_FAILED'

我在解析HTTPS rss feed的feedparser中遇到了这个SSL问题,我真的不知道该怎么办,因为在feedparser上找不到关于这个错误的任何文档

>>> import feedparser
>>> feed = feedparser.parse(rss)
>>> feed
{'feed': {}, 'bozo': 1, 'bozo_exception': URLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'),), 'entries': []}
>>> feed["items"]
[]
>>> 
Run Code Online (Sandbox Code Playgroud)

python rss ssl feedparser python-2.7

7
推荐指数
1
解决办法
3890
查看次数

Feedparser - 从Google阅读器中检索旧邮件

我在python中使用feedparser库从当地报纸上检索新闻(我的目的是在这个语料库上进行自然语言处理),并希望能够从RSS提要中检索许多过去的条目.

我不太熟悉RSS的技术问题,但我认为这应该是可能的(我可以看到,例如,当我移动滚动条时,Google Reader和Feedly可以"按需"执行此操作).

当我执行以下操作时:

import feedparser

url = 'http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml'
feed = feedparser.parse(url)
for post in feed.entries:
   title = post.title
Run Code Online (Sandbox Code Playgroud)

我只收到了十几个条目.我在考虑数百个.如果可能的话,也许是上个月的所有参赛作品.是否可以仅使用feedparser执行此操作?

我打算从rss中获取仅包含新闻项的链接,并使用BeautifulSoup解析整个页面以获取我想要的文本.另一种解决方案是跟踪页面中所有本地链接的爬虫,以获取大量新闻,但我想暂时避免这样做.

-

出现的一个解决方案是使用Google Reader RSS缓存:

http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml?n=1000

但要访问它,我必须登录Google阅读器.谁知道我是如何从python那样做的?(我真的不知道关于网络的事情,我通常只讨论数值计算).

python rss google-reader feedparser

6
推荐指数
1
解决办法
3397
查看次数

跳过分析“feedparser.util”:模块已安装,但缺少库存根或 py.typed 标记

我该如何修复这个错误?feedparser 似乎不支持 mypy 类型?我找不到 feedparser 的 typeshed 实现

更新1

我看到一个名为ignore_missing_imports 的选项,我可以将其添加到 pyproject.toml 中。这样做不是一个坏主意吗?

python feedparser mypy python-typing

6
推荐指数
1
解决办法
7403
查看次数

我可以使用什么模块来解析Perl CGI脚本中的RSS源?

我试图找到一个可以与Perl CGI脚本一起使用的RSS解析器.我发现simplepie并且在PHP脚本中使用这个非常简单的解析器.不幸的是,这不适用于Perl CGI脚本.如果有什么比较容易使用,请告诉我simplepie.

我遇到过这个RssDisplay但是我不确定它的用法以及它有多好.

rss perl cgi feedparser

5
推荐指数
1
解决办法
1994
查看次数

如何在Google App Engine上使用urllib2声明超时?

我知道它urllib2可以在Google App Engine上作为Urlfetch的包装使用,如您所知,Universal Feedparser使用urllib2.

你知道在urllib2上设置超时的方法吗?urllib2上
timeout参数是否已移植到Google App Engine版本上?

我对方法不感兴趣:

rssurldata = urlfetch(rssurl, deadline=..)
feedparser.parse(rssurldata)
Run Code Online (Sandbox Code Playgroud)

google-app-engine urllib2 feedparser urlfetch

5
推荐指数
1
解决办法
2101
查看次数

还可以处理FeedBurner的Python RSS解析器

我当时正在为RSS供稿编写Python解析器脚本。我使用的是feedparser,但是,我仍然无法解析FeedBurner的供稿。如今谁需要FeedBurner?无论如何..

例如,我找不到解析方法

http://feeds.wired.com/wired/index

http://feeds2.feedburner.com/ziffdavis/pcmag

当我将它们放入feedparser库时,似乎无法正常工作。尝试将?fmt = xml或?format = xml放在URL的末尾,但仍然没有采用xml格式。

我是否需要使用诸如BeautifulSoup之类的html解析器来解析FeedBurner提要?最好是已经有一个python公共解析器或聚合器脚本可以处理这个问题了吗?

任何提示或帮助将不胜感激。

python rss feeds feedparser xml-parsing

5
推荐指数
1
解决办法
2894
查看次数

python feedparser ImportError:没有名为 feedparser 的模块

当我尝试将 feedparser 库包含到交互式 Python 环境中时收到错误:

>>>> import feedparser
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named feedparser
Run Code Online (Sandbox Code Playgroud)

BeautifulSoup 和 pydelicious 也会发生这种情况。为什么我会收到此错误?

使用 OS X 10.8.3,其中 /usr/bin 目录中包含以下文件:

$ ll python*
-rwxr-xr-x  2 root  wheel  58896 Mar 17 20:55 python
-rwxr-xr-x  6 root  wheel    925 Nov 16 10:30 python-config
lrwxr-xr-x  1 root  wheel     75 Nov 16 10:30 python2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
lrwxr-xr-x  1 root  wheel     82 Nov 16 10:30 python2.5-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config
lrwxr-xr-x  1 root …
Run Code Online (Sandbox Code Playgroud)

python homebrew pip feedparser python-2.7

5
推荐指数
1
解决办法
2万
查看次数

Django rss feedparser返回没有"标题"的Feed

我正在Django中编写一个基本的RSS提要阅读器.我有一个表单,用户提交rss提要,然后将其添加到他的提要列表中.但由于某些原因,我无法使用Feed解析器提取有关Feed的基本信息.

当我运行以下代码时:

def form_valid(self, form):
    user = self.request.user
    link = form.cleaned_data['link']
    feed = feedparser.parse(link).feed
    title = feed.title
    try:
        feed_obj = Feed.objects.get(link=link)
    except ObjectDoesNotExist:
        feed_obj = Feed(link=link, title=title)
        feed_obj.save()
    user.get_profile().feeds.add(feed_obj)
    return super(DashboardView, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)

Django在第5行抛出了一个"对象没有属性'标题'"例外:

title = feed.title
Run Code Online (Sandbox Code Playgroud)

完整的错误详情是:

Traceback:
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  25.                 return view_func(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  86.         return handler(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post
  165. …
Run Code Online (Sandbox Code Playgroud)

python django feedparser

5
推荐指数
1
解决办法
698
查看次数

使用python/django进行日期时间本地化

我正在尝试解析RSS提要.Feed中的条目包含以下日期元素:

<dc:date>2016-09-21T16:00:00+02:00</dc:date>
Run Code Online (Sandbox Code Playgroud)

使用feedparser,我尝试:

published_time = datetime.fromtimestamp(mktime(entry.published_parsed))
Run Code Online (Sandbox Code Playgroud)

但问题是我似乎得到了存储在数据库中的错误时间.在这种特殊情况下,日期时间存储为:

2016-09-21 13:00:00
Run Code Online (Sandbox Code Playgroud)

...当我期望14:00 - 正确的UTC时间.

我认为问题出在我们的django设置中,我们有:

TIME_ZONE = 'Europe/Berlin'
Run Code Online (Sandbox Code Playgroud)

因为当我切换到:

TIME_ZONE = 'UTC'
Run Code Online (Sandbox Code Playgroud)

...数据时间存储为正确的UTC时间:

2016-09-21 14:00:00
Run Code Online (Sandbox Code Playgroud)

有没有办法保持django设置不变,但要正确解析和存储这个日期时间,而不会影响django时区设置?

编辑:也许这样更清楚......

print entry.published_parsed
published_time = datetime.fromtimestamp(mktime(entry.published_parsed))
print published_time
localized_time = pytz.timezone(settings.TIME_ZONE).localize(published_time, is_dst=None)
print localized_time

time.struct_time(tm_year=2016, tm_mon=9, tm_mday=21, tm_hour=14, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=265, tm_isdst=0)
2016-09-21 15:00:00
2016-09-21 15:00:00+02:00
Run Code Online (Sandbox Code Playgroud)

python django datetime feedparser

5
推荐指数
1
解决办法
2135
查看次数