我有一个巨大的URL列表,我的任务是将它们提供给一个python脚本,如果有的话应该吐出feed URL。有没有可以帮助的API库或代码?自动从网页中提取供稿链接(原子,rss等)
4
A
回答
3
我在推荐Beautiful Soup来解析HTML,然后得到<链接rel =“alternate”标签,其中的feed被引用的第二个华夫饼干悖论。该代码我通常使用:
from BeautifulSoup import BeautifulSoup as parser
def detect_feeds_in_HTML(input_stream):
""" examines an open text stream with HTML for referenced feeds.
This is achieved by detecting all ``link`` tags that reference a feed in HTML.
:param input_stream: an arbitrary opened input stream that has a :func:`read` method.
:type input_stream: an input stream (e.g. open file or URL)
:return: a list of tuples ``(url, feed_type)``
:rtype: ``list(tuple(str, str))``
"""
# check if really an input stream
if not hasattr(input_stream, "read"):
raise TypeError("An opened input *stream* should be given, was %s instead!" % type(input_stream))
result = []
# get the textual data (the HTML) from the input stream
html = parser(input_stream.read())
# find all links that have an "alternate" attribute
feed_urls = html.findAll("link", rel="alternate")
# extract URL and type
for feed_link in feed_urls:
url = feed_link.get("href", None)
# if a valid URL is there
if url:
result.append(url)
return result
3
我不知道任何现有的库,但Atom或RSS提要通常与<link>
标签显示在<head>
节这样:
<link rel="alternative" type="application/rss+xml" href="http://link.to/feed">
<link rel="alternative" type="application/atom+xml" href="http://link.to/feed">
简单的方法将被下载和解析这些URL的用HTML解析器,如lxml.html,并获取相关<link>
标记的href
属性。
1
取决于良好的形成在这些饲料中的信息是如何(比如,是否在http://.../
形式的所有环节吗?你知道,如果他们都将在href
或link
标签?在饲料的所有链接去其他的饲料?等),我会推荐从简单的正则表达式到直接的解析模块从提取饲料中提取链接。我只能推荐beautiful soup。尽管即使是最好的解析器也只会走得这么远 - 尤其是在上面提到的情况下,如果不能保证数据中的所有链接都将链接到其他提要;那么你必须自己做一些额外的抓取和探测。
7
>>> import feedfinder
>>>
>>> feedfinder.feed('scripting.com')
'http://scripting.com/rss.xml'
>>>
>>> feedfinder.feeds('scripting.com')
['http://delong.typepad.com/sdj/atom.xml',
'http://delong.typepad.com/sdj/index.rdf',
'http://delong.typepad.com/sdj/rss.xml']
>>>
相关问题
- 1. 如何从jQuery中的博客获取rss供稿链接
- 2. 自动搜索供Rss供稿
- 3. 2头部RSS供稿链接?
- 4. 如何提取原子/ RSS
- 5. 从网页/博客提取原子
- 6. 从网页提取所有链接
- 7. 从cefsharp上的网页提取链接
- 8. 制作:manpage:提供链接到网页
- 9. 让RSS在我的网站供稿
- 10. jQuery - 从动态RSS提要链接将外部网页加载到div
- 11. 使用Yahoo Pipes从RSS提要中提取超链接
- 12. 从Google快讯链接中提取原始网址
- 13. 如何检查Rss供稿链接是否有效
- 14. 从Google电子表格中绘制xml/rss供稿(s)?
- 15. 重写RSS供稿中的URL以用于自动博文
- 16. 删除链接从Instagram图片供稿
- 17. RSS原子:链接 - 自我引用不匹配文档位置
- 18. 从网站中提取链接
- 19. 从网站链接中提取
- 20. 这是rss供稿吗?
- 21. 新闻供稿网页
- 22. 解析JSON供稿网页
- 23. 无法在少数网站中找到rss供稿网址
- 24. 在c#中使用htmlagilitypack从网页中提取链接和帖子的方法?
- 25. 提取与Nokogiri的RSS链接
- 26. 如何从网页中提取句子
- 27. 使用syndicationitem获取自定义rss供稿项目元素?
- 28. 从网站上的RSS提供的RSS源
- 29. 使用Go lang从网页中提取链接
- 30. 如何查找并从网页中提取链接?
feedfinder不再维持,但现在有['feedfinder2'](https://pypi.python.org/pypi/ feedfinder2)。 – Scarabee