搜索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。 如果"全部检查"为真,则被"全部检查"覆盖。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将BroadcastReceiver类代码放入服务类中,以便在服务类中注册和注销它?   在Java中根据字符串数组中的项检查输入   键入localhost:8080无法加载java tomcat10主页错误:ERR\u CONNECTION\u被拒绝   java我的程序在BlueJ中的文本“Gross Pay:”后遇到“%.2f”时“崩溃”   使用Servlet和Prepared语句的java UPDATE类找不到异常(MySQL驱动程序)   java如果我使用安装在不同操作系统上的docker使用strictfp,有可能得到不同的结果吗?   java如何在zk中将复选框的onCheck事件传递给其父级?   我们如何通过java中的sftp将文本附加到远程服务器上的现有文件?   java如何将字符串与linkedlist中的字符串进行比较,并将结果作为布尔值插入mysql表   关于Lambda的java。。。。分号   java更改Android容器标题的颜色   java多维数组计算   hibernate 5中的java弃用记录器   java如何读取HOCON配置以将值加载到地图中?   分析如何在生产环境中调试java heap OutOfMemory错误?