搜索rss、atom和json提要的站点
feedsearch的Python项目详细描述
用法
feedsearch是用单个函数调用的 search :
>>>fromfeedsearchimportsearch>>>feeds=search('xkcd.com')>>>feeds[FeedInfo('https://xkcd.com/atom.xml'),FeedInfo('https://xkcd.com/rss.xml')]>>>feeds[0].url'http://xkcd.com/atom.xml'
获取源和站点元数据:
>>>feeds=search('propublica.org',info=True)>>>feeds[FeedInfo('http://feeds.propublica.org/propublica/main')]>>>pprint(vars(feeds[0])){'bozo':0,'content_type':'text/xml; charset=UTF-8','description':'Latest Articles and Investigations from ProPublica, an ''independent, non-profit newsroom that produces investigative ''journalism in the public interest.','favicon':'https://assets.propublica.org/prod/v3/images/favicon.ico','favicon_data_uri':'','hubs':['http://feedpress.superfeedr.com/'],'is_push':True,'score':4,'self_url':'http://feeds.propublica.org/propublica/main','site_name':'ProPublica','site_url':'https://www.propublica.org/','title':'Articles and Investigations - ProPublica','url':'http://feeds.propublica.org/propublica/main','version':'rss20'}
搜索将始终返回 feedinfo 对象的列表,每个对象都将始终具有 url 属性。 feed按 score 值从高到低排序,理论上较高的分数表示 与提供的原始URL相比,更相关的源。
如果只需要原始url,则对结果使用列表理解,或设置 作为url 参数设置为 true :
>>>feeds=search('http://jsonfeed.org')>>>feeds[FeedInfo('https://jsonfeed.org/xml/rss.xml'),FeedInfo('https://jsonfeed.org/feed.json')]>>>urls=[f.urlforfinfeeds]>>>urls['https://jsonfeed.org/xml/rss.xml','https://jsonfeed.org/feed.json']>>>feeds=search('http://jsonfeed.org',as_urls=True)>>>feeds>>>['https://jsonfeed.org/xml/rss.xml','https://jsonfeed.org/feed.json']
除了url之外, search 函数还接受以下可选的关键字参数:
- 信息 : 布尔 :获取源和站点元数据。默认为False。
- 全部选中 : bool :选中所有内部链接页的<;a>;标记以查找源和默认CMS源。 只检查一层。默认为False。可能非常慢。
- 用户代理 : str :用户代理头字符串。默认为软件包名称。
- 超时 : 浮点 或 元组(浮点,浮点) :搜索中每个请求的超时(不是 搜索的超时 方法本身)。默认为3秒。见 请求文档 了解更多信息。
- 最大重定向次数:每个请求的最大重定向次数。默认为30。
- 分析器 : str :美化HTML解析的组解析器。默认为"html.parser"。
- 异常 : bool :如果为false,则将优雅地处理请求异常并尝试继续搜索。 如果为true,则将不让调用方处理请求异常。默认为False。
- favicon_data_uri : bool :将favicon转换为数据uri。默认为False。
- 作为URL : bool :将找到的源作为URL字符串列表而不是feedinfo对象返回。
- cms : bool :如果尚未找到任何源,并且站点正在使用已知的cms,请检查默认的cms源位置。默认为真。
- 仅限发现 : 布尔 :仅搜索RSS发现标记(例如<;link rel="alternate"ref=…>;)。默认为False。 如果"全部检查"为真,则被"全部检查"覆盖。