Javascript 从网页中提取提要

Javascript 从网页中提取提要,javascript,python,rss,feed,text-extraction,Javascript,Python,Rss,Feed,Text Extraction,我正在寻找一个代码片段(语言在这里并不重要),它将 提取与此页面关联的所有提要(RSS、atom等) 因此,输入是URL,输出是频道列表 重要的是完整性,这意味着页面是否关联了某些信息通道 应该找到它 我最好是问在HTML代码中可以找到什么,在哪里可以找到完整性 谢谢您可以在html文件的head标记中找到提要。在那里,它们应该被指定为link标记,并带有相关的内容类型和指定其位置的href属性 要使用python从页面中提取所有提要URL,可以使用以下方法: import urllib fro

我正在寻找一个代码片段(语言在这里并不重要),它将 提取与此页面关联的所有提要(RSS、atom等)

因此,输入是
URL
,输出是
频道列表

重要的是完整性,这意味着页面是否关联了某些信息通道 应该找到它

我最好是问在HTML代码中可以找到什么,在哪里可以找到完整性


谢谢

您可以在html文件的
head
标记中找到提要。在那里,它们应该被指定为
link
标记,并带有相关的内容类型和指定其位置的href属性

要使用python从页面中提取所有提要URL,可以使用以下方法:

import urllib
from HTMLParser import HTMLParser

class FeedParser(HTMLParser):

    def __init__(self, *args, **kwargs):
        self.feeds = set()
        HTMLParser.__init__(self, *args, **kwargs)

    def handle_starttag(self, tag, attrs): 
        if tag == 'link':
            try:
                href = [attr[1] for attr in attrs if attr[0] == 'href'][0]
            except IndexError:
                return None         
            else:
                if ('type', 'application/atom+xml') in attrs or ('type', 'application/rss+xml') in attrs:
                    self.feeds.add(href)    


def get_all_feeds_from_url(url):
    f = urllib.urlopen(url)
    contents = f.read()
    f.close()

    parser = FeedParser()
    parser.feed(contents)
    parser.close()

    return list(parser.feeds)

如果您想涵盖将提要添加到html页面的所有奇怪方式,则必须对这段代码进行大量扩展。

谢谢您提供的代码片段,但许多页面不使用标准位置,可能会使用奇怪的方式。例如,查看网页。你能找出什么“古怪的方式”经常被使用吗?对不起,他们列出RSS提要的方式非常不标准。以编程方式查找它们的唯一方法是对它们的整个网页进行爬网(即浏览它们的所有超链接并检查:如果RSS提要:添加到集合,如果html:检查所有超链接并重复),我是否可以检查链接是否真的是一个频道?(atom或RSS或其他内容)