从网页中提取提要



我正在寻找一个代码片段(语言在这里不重要),将提取与该页相关的所有提要(RSS, atom等)。

输入是URL,输出是list of channels

重要的是完整性,它意味着页面是否关联了一些信息通道

我希望在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页面的古怪方式,那么这段代码将不得不进行相当多的扩展。

相关内容

  • 没有找到相关文章

最新更新