可以以多种方式使用News API。我们将一些示例工作流和方便的代码片段放在一起,以帮助您快速上手和运行。滚动左侧的完整列表,或者跳转到下面一些最常用的工作流。
聪明的薄铁片
Smart Tagger是我们最新的文章标记功能,它利用了最先进的分类模型,这些分类模型是基于领域特定的行业和主题类别分类法,使用大量手工标记的新闻文章构建的。智能标签拥有约3000个主题类别和约1500个行业的分类,可以高精度地对文章进行分类,让用户更容易地筛选与他们和他们的用例最相关的文章。点击下面的按钮,注册一个免费试用的智能标签。
智能标签工业和Aylien类别
通过访问我们的智能标记功能,您现在可以过滤与Aylien类别和行业标记的文章。为此,行业和aylien类别id和标签可以在AQL查询中使用。
每当一篇文章被标记为行业或Aylien类别时,就会对该标记应用0到1之间的分数,表明该行业或类别与文章的相关性。得分越高,说明标签与文章越相关。
下面是一个参数示例,该参数过滤带有<代码>我n.hcare.pharma代码>(”制药”)行业,相关度最低为0.7分:
Opts = {'aql': '行业:{{in.hcare。pharma AND score: [0.7 to *]}}'} opts = {'aql': 'industries: {{"Pharmaceuticals" AND score: [0.7 to *]}}'}代码>
下面的参数过滤标有Aylien类别的文章<代码>一个y.spec.adverse代码>(”不良事件”),相关度从0.7到0.9:
opts = {'aql': 'categories: {{taxonomy: aylien AND id: ay.spec.adverse AND score: [0.7 TO 0.9]}} opts = {'aql': 'categories: {{taxonomy: aylien AND label: "Adverse Events" AND score: [0.7 TO 0.9]}}'}代码>
使用布尔运算符,还可以过滤带有多个行业或Aylien类别标签的文章,如下面的参数r所示。
opts = {'aql': '(类别:{{taxonomy: aylien AND label: Cybersecurity}} OR类别:{{taxonomy: aylien AND label: Cyberterrorism}}) AND类别:{{taxonomy: aylien AND id: ay.lifesoc.cyber}}'}代码>
我们的分类
我们的分类器总共能够将内容分为四种分类法。与Smart Tagger使用的行业和类别一样,我们的模型使用IPTC和IAB分类类别。下表列出了完整的分类法列表。
分类 | 支持的语言 | 类的数量 | 水平的深度 | 常用的 | 分类ID | JSON | 请求访问 |
---|---|---|---|---|---|---|---|
Aylien一个> | 在 | 2998 | 6 | 新闻文章,博客文章 | aylien代码> |
请按此申请使用此高级功能一个> | |
行业一个> | 在 | 1496 | 4 | 新闻文章,博客文章 | 行业代码> |
请按此申请使用此高级功能一个> | |
IPTC主题代码一个> | 在 | 1400 | 3. | 新闻文章,博客文章 | iptc-subjectcode代码> |
视图一个> | |
IAB QAG一个> | 在 | 392 | 2 | 网站、广告(例如OpenRTB、<一个href="https://dev.twitter.com/mopub/marketplace/iab-categorization">细节一个>) | iab-qag代码> |
视图一个> |
我们支持的分类法由类别和子类别(或父类别和子类别)组成,例如,Football是Sport的子类别。
我们已经将所有受支持的分类法标准化为一个类似树的结构,这允许您轻松地递归地从子类别遍历父类别。
使用AQL查询IPTC和IAB
我们所有的客户现在都可以过滤带有IPTC或IAB类别标签的文章。创建此类查询的语法与过滤Aylien类别的语法相同。以下参数筛选的是IPTC“经济、商业和金融”类别的文章,最低得分为0.8。
opts = {'aql': 'categories: {{taxonomy: iptc AND id: 04000000 AND score: [0.8 TO *]}}'} opts = {'aql': 'categories: {{taxonomy: iptc AND label: "economy, business, AND finance" AND score: [0.8 TO *]}}'}代码>
与Aylien类别一样,布尔运算符可用于过滤多个IPTC或IAB类别,如下所示。
opts = {'aql': '类别:{{taxonomy: iab-qag AND label: "Human Resources"}} OR类别:{{taxonomy: iab-qag AND id: IAB3-10}}'}代码>
例子
下面的示例使用标志类别搜索检索处于目录中的文章英语,是关于科学发表于1天前而且现在.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB15”),“语言”:[“en”),“published_at_start”:“NOW-1DAY”,“published_at_end”:“现在”}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(“API已成功调用。”)打印('=====================================')为故事在api_response.故事:打印(故事.标题+“/”+故事.源.的名字)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB15”),:语言= >[“en”),: published_at_start= >“NOW-1DAY”,: published_at_end= >“现在”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.的名字}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”categoriesTaxonomy”:”iab-qag”,”categoriesId”:[”IAB15”),”语言”:[”在”),”publishedAtStart”:”NOW-1DAY”,”publishedAtEnd”:”现在”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题+"/"+数据.故事[我]。源.的名字);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{PublishedAtStart:可选.部份(“NOW-1DAY”),PublishedAtEnd:可选.部份(“现在”),CategoriesTaxonomy:可选.部份(“iab-qag”),CategoriesId:可选.NewInterface([]字符串{“IAB15”}),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
下面的示例与上面的示例相同,只是它使用了AQL查询来代替平面类别搜索。
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“categories_taxonomy”:“iab-qag”,“aql”:'categories: {{taxonomy: iab-qag AND id: IAB15}}'“语言”:[“en”),“published_at_start”:“NOW-1DAY”,“published_at_end”:“现在”}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(“API已成功调用。”)打印('=====================================')为故事在api_response.故事:打印(故事.标题+“/”+故事.源.的名字)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: aql= >'categories: {{taxonomy: iab-qag AND id: IAB15}}',:语言= >[“en”),: published_at_start= >“NOW-1DAY”,: published_at_end= >“现在”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.的名字}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”aql”:”分类:{{分类:iab-qag AND id: IAB15}}”,”语言”:[”在”),”publishedAtStart”:”NOW-1DAY”,”publishedAtEnd”:”现在”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题+"/"+数据.故事[我]。源.的名字);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{Aql:可选.部份(' categories: {{taxonomy: iab-qag AND id: IAB15}} ')PublishedAtStart:可选.部份(“NOW-1DAY”),PublishedAtEnd:可选.部份(“现在”),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
下面的示例使用AQL Aylien类别查询检索中的项目英语,被标记为社交媒体营销关联度不低于0.7,且在最近一期出版3个月.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“aql”:'categories: {{taxonomy: aylien AND id: ay.lifesoc.socmark AND score: [0.7 TO *]}}',“published_at_start”:“NOW-3MONTHS”,“published_at_end”:“现在”}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(“API已成功调用。”)打印('=====================================')为故事在api_response.故事:打印(故事.标题+“/”+故事.源.的名字)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={:语言= >[“en”),: aql= >'categories: {{taxonomy: aylien AND id: ay.lifesoc.socmark AND score: [0.7 TO *]}}',: published_at_start= >“NOW-3MONTHS”,: published_at_end= >“现在”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.的名字}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”语言”:[”在”),”aql”:”分类:{{分类:aylien AND id: ay.lifesoc.socmark AND score: [0.7 TO *]}}”,”publishedAtStart”:”NOW-3MONTHS”,”publishedAtEnd”:”现在”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题+"/"+数据.故事[我]。源.的名字);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{语言:可选.NewInterface([]字符串{“en”}),Aql:可选.部份(' categories: {{taxonomy: aylien AND id: ay.lifesoc.socmark AND score: [0.7 TO *]}} '),PublishedAtStart:可选.部份(“NOW-3MONTHS”),PublishedAtEnd:可选.部份(“现在”)}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
最后一个示例使用AQL行业查询进行筛选英语附有“食品服务相关度得分在0.8 - 0.9之间的行业,且在最后公布30天.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“aql”:行业:{{in.service。食物与得分:[0.8到0.9]}}',“published_at_start”:“NOW-30DAYS”,“published_at_end”:“现在”}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(“API已成功调用。”)打印('=====================================')为故事在api_response.故事:打印(故事.标题+“/”+故事.源.的名字)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={:语言= >[“en”),: aql= >行业:{{in.service。食物与得分:[0.8到0.9]}}',: published_at_start= >“NOW-30DAYS”,: published_at_end= >“现在”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.的名字}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”语言”:[”在”),”aql”:”行业:{{in.service。食物与得分:[0.8到0.9]}}”,”publishedAtStart”:”NOW-30DAYS”,”publishedAtEnd”:”现在”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题+"/"+数据.故事[我]。源.的名字);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{语言:可选.NewInterface([]字符串{“en”}),Aql:可选.部份(行业:{{in.service。食物与得分:[0.8到0.9]}}'),PublishedAtStart:可选.部份(“NOW-30DAYS”),PublishedAtEnd:可选.部份(“现在”)}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
使用集群
新闻API提供了访问来自世界各地数千个新闻来源的数百万个故事。集群特性根据它们所谈论的真实事件将这些故事分组成集群。集群仅对拥有企业计划的News API用户开放。联系我们的销售团队升级或测试功能。
如何在Aylien新闻API上使用集群?
下面描述了如何检索集群和使用集群端点。
集群对象
集群是根据相似性将故事分组在一起的集合。集群对象是一种新型的JSON对象,它提供集群的id以及与之关联的故事的元数据。
集群具有以下属性:
- 每个集群在News API中都有一个惟一的ID
- 集群可以有一个或多个与之关联的故事
- 一个故事永远只属于一个群体。
- 故事和集群之间的关系不会改变—以后它不会被重新分配到另一个集群。
大多数新闻在被新闻API吸收后的几分钟内就会被聚集在一起。
JSON响应
{“cluster_count”:2042945,“集群”:[{“id”:4992716,“时间”:“2019 - 07 - 20 - t07:16:03z”,“story_count”:26488,“earliest_story”:“2019 - 07 - 20 - t07:16:03z”,“latest_story”:“2019 - 08 - 03 - t07:41:09z”,“representative_story”:{“id”:21466483,“标题”:“分析师对a.o.史密斯公司2019年第三季度收益进行预测(纽约证券交易所代码:AOS)”,“永久链接”:“https://www.tickerreport.com/banking - finance/4497288/analysts -提供-预测- - - o -史密斯-队- - 2019第三季度盈利nyseaos.html”,“published_at”:“2019 - 08 - 03 - t07:15:26z”},“位置”:{“国家”:“我们”}}),“next_page_cursor”:"<在结果的分页中使用的字符串>"}
使用clusters端点检索集群
集群端点允许您从特定的时间窗口检索集群。
该端点用于监视重要的、“突发”新闻事件,这些新闻事件正在接受指定级别的报道。由于每个集群都提供了关于故事数量的元数据,具有大量故事的新集群通常指向一个新的、重要的事件(您还可以根据国家过滤事件,以本地化搜索)。
一旦检索到集群对象,就可以使用集群id查询Stories端点,以收集与集群关联的故事。
代码片段
这个代码片段展示了如何收集在过去6个小时内创建的集群,并且与它们关联的故事超过10个。
进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”客户端=aylien_news_api.ApiClient(配置)api_instance=aylien_news_api.DefaultApi(客户端)试一试:api_response=api_instance.list_clusters(time_end=“NOW-6HOURS”,story_count_min=10)pprint(api_response)除了ApiException作为e:打印(当调用DefaultApi->list_clusters: %s时异常\ n"%e)
#加载宝石需要“aylien_news_api”需要“页”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: time_end= >“NOW-6HOURS”,: story_count_min= >10}开始#列出的故事结果=api_instance.list_clusters(选择)把"====================================="页结果救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_APP_KEY”;varapiInstance=新AylienNewsApi.DefaultApi();var选择={”storyCountMin”:10,”timeStart”:”NOW-6HOURS”};apiInstance.listClusters(选择,(错误,数据,响应)= >{如果(错误){控制台.错误(错误);}其他的{控制台.日志(数据.集群);}});
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApiclustersParams:=&newsapi.ListClustersOpts{StoryCountMin:可选.NewInt32(3.),TimeStart:可选.部份(“NOW-6HOURS”),LocationCountry:可选.NewInterface([]字符串{“GB”}),}clustersResponse,res,犯错:=api.ListClusters(上下文.背景(),clustersParams)如果犯错! =零{恐慌(犯错)}_=res为_,集群:=范围clustersResponse.集群{fmt.Println(集群)}}
要检索与集群关联的故事,您可以使用代表性故事,也可以使用集群id对故事端点进行额外调用。
使用趋势端点检索集群
Trends端点允许您根据集群中包含的故事过滤集群。例如,您可以筛选包含具有特定类别标签的故事、提及特定实体或甚至具有特定情感评分的集群。
您可以使用此端点实时监视有关特定主题或实体的事件。
趋势端点返回<代码>我d代码>按相关故事的数量排序的集群。一旦你有了每个集群的<代码>我d代码>,您可以继续—从Clusters端点获取集群元数据—从stories端点获取每个集群的故事。
趋势端点只返回给定查询的前100个集群。因此,如果您打算支持实时监控,那么应该确保查询非常具体,并且覆盖足够小的间隔来检索所有相关集群。
代码片段
下面的示例代码展示了如何收集在过去12个小时内与政治类别(IPTC代码:11000000)分类的新闻相关的集群,并提到了美国国会。故事端点然后返回3个相关的故事从来源与最高的Alexa排名在美国。
从__future__进口print_function进口时间进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置=aylien_news_api.配置()#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))defget_cluster_from_trends():"""返回一个最多包含100个集群的列表,这些集群满足设置的参数。"""响应=api_instance.list_trends(场=“集群”,categories_taxonomy=“iptc-subjectcode”,categories_id=[“11000000”),published_at_end=“NOW-12HOURS”,entities_title_links_wikipedia=[“https://en.wikipedia.org/wiki/United_States_Congress”])返回[项.价值为项在响应.趋势]defget_cluster_metadata(cluster_id):"""返回给定集群的代表性故事、故事数量和时间值"""响应=api_instance.list_clusters(id=[cluster_id])集群=响应.集群如果集群是没有一个或len(集群)= =0:返回没有一个first_cluster=集群[0]返回{“集群”:first_cluster.id,“representative_story”:first_cluster.representative_story,“story_count”:first_cluster.story_count,“时间”:first_cluster.时间}defget_top_stories(cluster_id):"""从排名最高的发布者返回与集群相关的3个故事"""响应=api_instance.list_stories(集群=[cluster_id),sort_by=“source.rankings.alexa.rank.US”,per_page=3.)返回响应.故事集群={}cluster_id=get_cluster_from_trends()为cluster_id在cluster_id:元数据=get_cluster_metadata(cluster_id)如果元数据是不没有一个:故事=get_top_stories(cluster_id)元数据[“故事”]=故事pprint(元数据)其他的:打印(“{}空”.格式(cluster_id))
包主要进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”“strconv”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApigetTrends:=函数(searchTerm字符串)newsapi.趋势{场:=“集群”trendsParams:=&newsapi.ListTrendsOpts{标题:可选.部份(searchTerm),}trendsResponse,res,犯错:=api.ListTrends(上下文.背景(),场,trendsParams)如果犯错! =零{恐慌(犯错)}_=res返回trendsResponse}getClusterMetadata:=函数(clusterIdint64)newsapi.集群{clustersParams:=&newsapi.ListClustersOpts{Id:可选.NewInterface([]int64{clusterId}),}clustersResponse,res,犯错:=api.ListClusters(上下文.背景(),clustersParams)如果犯错! =零{恐慌(犯错)}_=res返回clustersResponse.集群[0]}getTopStories:=函数(clusterIdint64)newsapi.故事{storiesParams:=&newsapi.ListStoriesOpts{集群:可选.NewInterface([]int64{clusterId}),PerPage:可选.NewInt32(3.),SortBy:可选.部份(“source.rankings.alexa.rank.US”),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res返回storiesResponse}趋势:=getTrends(“王牌”)为_,趋势:=范围趋势.趋势{fmt.Println("\ n----------")clusterId,犯错:=strconv.方法用于(趋势.价值,10,64)如果犯错! =零{恐慌(犯错)}元数据:=getClusterMetadata(clusterId)fmt.Println(“集群ID:”,clusterId,"\ n故事数:”,元数据.StoryCount,"\ n检测到的位置:“,元数据.位置,"\ n代表的故事:“,元数据.RepresentativeStory.标题,"\ n \ n故事:“)topStories:=getTopStories(clusterId)为_,故事:=范围topStories.故事{fmt.Println(“-”,故事.源.的名字,“/”,故事.标题)}}}
var跑龙套=需要(”跑龙套”)varAylienNewsApi=需要(”aylien-news-api”);varapiInstance=新AylienNewsApi.DefaultApi();varapp_id=apiInstance.apiClient.认证[”app_id”];app_id.apiKey="app_id";varapp_key=apiInstance.apiClient.认证[”app_key”];app_key.apiKey="app_key";函数getTrends(search_term){var场="集群";vartrends_opts={”标题”:search_term,”categories_taxonomy”:”iptc-subjectcode”,”categories_id”:[”11000000”),”published_at_end”:”NOW-12HOURS”,”per_page”:2};apiInstance.listTrends(场,trends_opts,(错误,数据,响应)= >{如果(错误){控制台.日志(错误);}其他的{为(var我=0;我<数据.趋势.长度;我++){varcluster_opts={”id”:[数据.趋势[我]。价值]}apiInstance.listClusters(cluster_opts,(错误,cluster_data,响应)= >{如果(错误){控制台.错误(错误);}其他的{控制台.日志(跑龙套.检查(cluster_data,{showHidden:假,深度:零}));}})}}});}var集群=getTrends("特朗普");控制台.日志(集群);
需要“aylien_news_api”需要“页”defget_trends(search_term)集群=[]场=“集群”选择={标题:search_term}开始结果=api_instance美元.list_trends(场,选择)#页的结果趋势=结果.趋势#页的结果趋势.每一个做|趋势|集群.推(趋势.价值)结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_trends时异常:# {e}"结束集群结束defget_cluster(cluster_ID)cluster_opts={id:cluster_ID}开始结果=api_instance美元.list_clusters(cluster_opts)cluster_data=结果.集群救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_clusters时异常:# {e}"cluster_data结束结束AylienNewsApi.配置做|配置|配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“app_id”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“api_key”结束api_instance美元=AylienNewsApi::DefaultApi.新趋势=get_trends(“王牌”)趋势.每一个做|cluster_ID|页get_cluster(cluster_ID)结束
使用Stories端点检索集群
Stories端点允许您收集经过筛选的故事流,同时还可以检索与各个故事关联的集群ID。
你可以用它来有效地“瓦解”你正在监控的实时信息流中的故事。这可能是有用的,例如,避免在滚动的新闻流中显示类似的故事。
一旦有了集群的ID,就可以查询集群端点来检索集群的元数据。
代码片段
下面的代码片段检索了最近提到唐纳德·特朗普的报道,并删除了提到同一事件的报道。
从__future__进口print_function进口时间进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”配置=aylien_news_api.配置()#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))defget_stories():返回一个故事对象列表"""响应=api_instance.list_stories(标题=“利物浦”,published_at_start=“NOW-7DAYS”,per_page=One hundred.)返回响应.故事故事=get_stories()clustered_stories={}集群=[]为故事在故事:如果len(故事.集群)>0:集群=故事.集群[0]如果集群不在集群:clustered_stories[集群]=[故事.标题]其他的:clustered_stories[集群]。附加(故事.标题)为集群在clustered_stories:打印(集群,len(clustered_stories[集群]),clustered_stories[集群] [0])
varAylienNewsApi=需要(”aylien-news-api”);varapiInstance=新AylienNewsApi.DefaultApi();//配置API密钥授权:app_idvarapp_id=apiInstance.apiClient.认证[”app_id”];app_id.apiKey="YOUR_APP_ID";//配置API密钥授权:app_keyvarapp_key=apiInstance.apiClient.认证[”app_key”];app_key.apiKey="YOUR_API_KEY";var选择={”身体”:”利物浦”,”publishedAtStart”:”NOW-7DAYS”,”perPage”:One hundred.};varclusterResult={};apiInstance.listStories(选择,(错误,数据,响应)= >{如果(错误){控制台.错误(错误);}其他的{为(var我=0;我<数据.故事.长度;我++){如果(数据.故事[我]。集群.长度>0& &(!(数据.故事[我]。集群[0]在clusterResult))) {clusterResult[数据.故事[我]。集群[0]]=[数据.故事[我]。标题];}其他的如果(数据.故事[我]。集群.长度>0& &(数据.故事[我]。集群[0]在clusterResult)){clusterResult[数据.故事[我]。集群[0]]。推(数据.故事[我]。标题);}其他的{控制台.日志(数据.故事[我]。标题,数据.故事[我]。集群[0]);};};};控制台.日志(clusterResult);});
包主要进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)类型ClusteredStory结构体{标题字符串源字符串}函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“利物浦”),PublishedAtStart:可选.部份(“NOW-7DAYS”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(One hundred.),SortBy:可选.部份(“相关性”),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=resclusteredStories:=使(地图[int64] []ClusteredStory,One hundred.)为_,故事:=范围storiesResponse.故事{//为每个新集群创建一个映射,向现有集群添加故事如果len(故事.集群)>0{clusteredStories[故事.集群[0]]=附加(clusteredStories[故事.集群[0]],ClusteredStory{标题:故事.标题,源:故事.源.的名字})}}为集群:=范围clusteredStories{fmt.Println(集群,clusteredStories[集群])}}
需要“aylien_news_api”需要“页”AylienNewsApi.配置做|配置|配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: pubishedAtStart= >“NOW-7DAYS”,:标题= >“利物浦”,: per_page= >One hundred.}开始结果=api_instance.list_stories(选择)集群={}结果.故事.每一个做|故事|如果集群.has_key吗?(故事.集群[0])= =真正的集群[故事.集群[0]]。推(故事.标题)其他的集群[故事.集群[0]]=[故事.标题]结束结束页集群救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
使用的语言
News API提供16种语言的内容,搜索这些语言的新闻是通过向“language”参数提供你选择的语言来完成的。
强烈建议您始终在搜索中提供一个语言参数,无论你想搜索多少种语言。如果您不提供<代码>语言代码>参数,您的搜索将默认为所有语言,但是没有必要的特定于语言的过滤器比如停止字删除和词干化。这可能导致您的搜索无法检索与您的查询相关的所有新闻。
处理多语言内容
News API以16种语言提供来自全球各地的内容。所有这些语言的内容都将通过API进行分析和提供。
下面列出了受支持的语言及其语言代码。您可以使用的语言取决于您订阅的计划。多语言支持需要高级或企业许可密钥。<一个href="//www.daredevilro.net/newsapi/signup">开始免费试用一个>或<一个href="//www.daredevilro.net/info/aylien-news-api-sales">联系销售一个>升级您的帐户。
翻译
所有非英语故事均包括标题和正文的英文翻译。
你可以在故事对象的“翻译”栏中找到翻译。
{“标题”:“标题”,“身体”:“原来的身体”,“语言”:“< >非英语语言代码”,“<…>”:“<…>”,“翻译”:{“en”:{“身体”:“翻译体”,“标题”:“翻译标题”}}}
多语言搜索内容
News API提供了三种搜索多语言内容的方法。
- 您可以搜索原文,无论原始语言:
“标题”:"<搜索本地语言>文本"
- 您可以搜索文本的英语,无论原始非英语语言
“translations.en.title”:"<搜索文本的英文>"
- 可以搜索原始文本和翻译文本的特定组合。这对于搜索母语中的专有名词,同时指定英语中的附加关键字非常有用。
“标题”:"<搜索本地语言>文本",“translations.en.title”:"<搜索文本的英文>"
中指定一种或多种语言,可以按语言过滤搜索的内容<代码>语言代码>字段。
代码片段
下面的代码片段演示了上面列出的三种搜索方法。
要在俄语故事中搜索该语言的查询词(“Путин”——“Putin”的音译):
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))响应=api_instance.list_stories(标题=“Путин”,语言=[“俄罗斯”),published_at_start=“NOW-1MONTH /天”,published_at_end=“现在/天”,per_page=3.)为项在响应.故事:打印(项.标题)打印(项.翻译.在.标题)
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”//配置API密钥授权:app_keycfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“Путин”),语言:可选.NewInterface([]字符串{“俄罗斯”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(3.),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.PublishedAt,故事.标题,”(“,故事.翻译.在.标题,“/”,故事.源.的名字)}}
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;varapiInstance=新AylienNewsApi.DefaultApi();//配置API密钥授权:app_idvarapp_id=defaultClient.认证["app_id"];app_id.apiKey="YOUR_APP_ID";//配置API密钥授权:app_keyvarapp_key=defaultClient.认证["app_key"];app_key.apiKey="YOUR_API_KEY";var选择={”标题”:”Путин”,”语言”:[”俄文”),”publishedAtStart”:”NOW-5DAYS”,”publishedAtEnd”:”NOW-2HOURS”,”per_page”:3.};apiInstance.listStories(选择,(错误,数据,响应)= >{如果(错误){控制台.错误(错误);}其他的{为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题+"/"+数据.故事[我]。翻译.在.标题);}}});
需要“aylien_news_api”需要“页”AylienNewsApi.配置做|配置|配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={:标题= >“Путин”,:语言= >[“俄罗斯”),: published_at_start= >“NOW-10DAYS”,: published_at_end= >“现在”,: _return= >[“标题”]}开始结果=api_instance.list_stories(选择)页结果救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
要搜索翻译的俄语内容,在标题中提到“Путин”,也在标题的英文翻译中提到“商业”:
响应=api_instance.list_stories(标题=“Путин”,translations_en_title=“业务”,语言=[“俄罗斯”),published_at_start=“NOW-10DAYS”,published_at_end=“现在”,per_page=3.)
storiesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“Путин”),TranslationsEnTitle:可选.部份(“业务”),语言:可选.NewInterface([]字符串{“俄罗斯”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(3.),}
var选择={”标题”:”Путин”,”translationsEnTitle”:”业务”,”语言”:[”俄文”),”publishedAtStart”:”NOW-10DAYS”,”publishedAtEnd”:”NOW-2HOURS”,”per_page”:3.};
选择={:标题= >“Путин”,: translations_en_title= >“业务”,:语言= >[“俄罗斯”),: published_at_start= >“NOW-10DAYS”,: published_at_end= >“现在”,: _return= >[“标题”]}
要在所有语言中搜索一个英文搜索词:
响应=api_instance.list_stories(标题=“Путин”,translations_en_title=“普京”,published_at_start=“NOW-1MONTH /天”,published_at_end=“现在/天”,per_page=10)
storiesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“Путин”),TranslationsEnTitle:可选.部份(“普京”),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(3.),}
var选择={”标题”:”Путин”,”translationsEnTitle”:”普京”,”publishedAtStart”:”NOW-5DAYS”,”publishedAtEnd”:”NOW-2HOURS”,”per_page”:3.};
选择={:标题= >“Путин”,: translations_en_title= >“普京”,: published_at_start= >“NOW-10DAYS”,: published_at_end= >“现在”,: _return= >[“标题”]}
分析多语种内容
所有可通过新闻API访问的内容都可以通过其原生形式和机器翻译的英语文本获得。
所有内容都得益于News API支持的所有分析特性。大多数的自然语言语言丰富是在母语英语或翻译英语文本上进行的。这些丰富包括类别和行业丰富、实体提取和情感分析。
就文章摘要而言,这是在某些语言的原文和其他语言的翻译文本中进行的;见下文。
语言 | 文本使用 |
---|---|
En, de, fr, it, es, pt | 原始文本 |
Ar, da, fi, nl, fa, ru, sv, tr, zh-cn, zh-tw | 翻译文本(en) |
实时监控
实时监控使您能够根据您的特定搜索查询,在新闻发布时实时提取新闻。这可能对那些依赖于一发布就有最新消息的用户特别有兴趣,例如新闻列表。
新出版的故事将每五分钟被提取一次,以确保你只获得最新的出版物,而不是以前的重复。
有关使用此功能的更多信息,请参阅我们的<一个href="//www.daredevilro.net/docs/blog/news-api-feature-update-real-time-monitoring/">介绍该功能的博客文章一个>.
例子
下面的示例展示了如何提取包含该术语的近期报道都柏林的标题。
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))deffetch_new_stories(参数个数={}):打印('------------')fetched_stories=[]故事=没有一个而故事是没有一个或len(故事)>0:试一试:响应=api_instance.list_stories(**参数个数)除了ApiException作为e:如果(e.状态= =429):打印(“超过了使用限制。等60秒……”)时间.睡眠(60)继续故事=响应.故事参数个数[“光标”]=响应.next_page_cursorfetched_stories+ =故事打印(“获取% d的故事。迄今为止的故事总数:%d”%(len(故事),len(fetched_stories)))返回fetched_stories参数个数={“标题”:“都柏林”,“语言”:[“en”),“published_at_start”:“NOW-5MINUTES”,“published_at_end”:“现在”,“光标”:‘*’,“sort_by”:“published_at”,“sort_direction”:“desc”}而真正的:故事=fetch_new_stories(参数个数)打印('************')打印("已获取在%s到%s之间发布的%d个故事"%(len(故事),参数个数[“published_at_start”),参数个数[“published_at_end”)))如果len(故事)>0:last_fetched_at=故事[0]。published_at+datetime.timedelta(秒=1)参数个数[“published_at_start”]=last_fetched_at.isoformat():-6]+“Z”参数个数[“光标”]=‘*’打印(“睡5分钟,直到下一次投票……”)打印('------------')时间.睡眠(300)
需要“aylien_news_api”需要“时间”deffetch_new_stories(参数个数={})把"------------"fetched_stories=[]故事=零而故事.nil ?||故事.大小>0开始结果=api_instance美元.list_stories(参数个数)救援AylienNewsApi::ApiError= >e如果e.代码= =429把“超过了使用限制。等待60秒……”睡眠(60)重试结束结束故事=结果.故事参数个数[:光标]=结果.next_page_cursorfetched_stories+ =故事把“获取# {故事.大小}的故事。到目前为止的总故事数:# {fetched_stories.大小}"结束fetched_stories结束AylienNewsApi.配置做|配置|配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束api_instance美元=AylienNewsApi::DefaultApi.新选择={:标题= >“都柏林”,:语言= >[“en”),: published_at_start= >“NOW-5MINUTES”,: published_at_end= >“现在”,:光标= >“*”}而真正的做故事=fetch_new_stories(选择)把“*”*80把“获取# {故事.大小}出版的故事# {选择[: published_at_start]}而且# {选择[: published_at_end]}"如果故事.大小>0last_fetched_at=故事[0]。published_at+理性的(1,86400)选择[: published_at_start]=last_fetched_at.to_time.utc.iso8601选择[:光标]=“*”结束把“睡5分钟,直到下一次投票……”把"------------\ n \ n"睡眠(300)结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;函数睡眠(时间){返回新承诺((解决)= >setTimeout(解决,时间));}异步函数fetchNewStories(选择){让fetchedStories=[];让故事=零;做{等待新承诺((解决,拒绝)= >{apiInstance.listStories(选择,(错误,数据,响应)= >{如果(错误){如果(响应.状态= =429){控制台.日志(”超过使用限制。等待30秒……”);睡眠(30.*1000).然后(函数() {解决();});}其他的{拒绝(错误);}}其他的{选择.光标=数据.nextPageCursor;故事=数据.故事;fetchedStories=fetchedStories.concat(故事);控制台.日志("获取"+故事.长度+"的故事。到目前为止的总故事数:"+fetchedStories.长度);解决();}})})}而(故事.长度>0);返回fetchedStories;}varapiInstance=新AylienNewsApi.DefaultApi();//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';var选择={”标题”:”都柏林”,”语言”:[”在”),”publishedAtStart”:”NOW-5MINUTES”,”publishedAtEnd”:”现在/分钟”,”光标”:”*”,”perPage”:One hundred.,”sortBy”:”published_at”,”sortDirection”:”desc”};varwhileCondition=函数() {返回真正的;};promiseWhile(whileCondition,函数() {返回新承诺(函数(解决,拒绝){fetchNewStories(选择).然后(函数(故事){控制台.日志(”获取”+故事.长度+”出版的故事”+选择[”publishedAtStart”]+”而且”+选择[”publishedAtEnd”]);如果(故事.长度>0){varnewFetchAt=故事[0]。published_at.取得时间()+1000;选择[”publishedAtStart”]=新日期(newFetchAt);选择[”光标”]=”*”;}控制台.日志("睡5分钟直到下一次投票…");控制台.日志(”-------------\ n”);睡眠(300*1000).然后(函数() {解决();});});});});
包主要//导入库进口(“背景”“fmt”“时间”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApifetchNewStories:=函数(apiInstance*newsapi.DefaultApiService,storiesParams*newsapi.ListStoriesOpts)[]newsapi.故事{varfetchedStories[]newsapi.故事var故事[]newsapi.故事isFirstCall:=真正的为isFirstCall||len(故事)>0{storiesResponse,res,犯错:=apiInstance.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}如果res.StatusCode= =429{fmt.Println(“超过了使用限制。等待60秒……”)时间.睡眠(时间.持续时间(60)*时间.第二个)继续}isFirstCall=假故事=storiesResponse.故事storiesParams.光标=可选.部份(storiesResponse.NextPageCursor)fetchedStories=附加(fetchedStories,故事...)fmt.Printf(“获取% d的故事。迄今为止的故事总数:%d\ n",len(故事),len(fetchedStories))}返回fetchedStories}为{storiesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“都柏林”),PublishedAtStart:可选.部份(“NOW-5MINUTES”),PublishedAtEnd:可选.部份(“现在”),SortBy:可选.部份(“published_at”),}故事:=fetchNewStories(api,storiesParams)fmt.Printf("从%s到%s之间发布的%d个故事\ n",len(故事),storiesParams.PublishedAtStart,storiesParams.PublishedAtEnd)为_,故事:=范围故事{fmt.Println(故事.PublishedAt,“/”,故事.标题)}如果len(故事)>0{lastFetchedAt:=故事[0].PublishedAt.添加(时间.持续时间(1)*时间.第二个)storiesParams.PublishedAtStart=可选.部份(lastFetchedAt.格式(“2006 - 01 - 02 t15:04:05z”))e:=lastFetchedAt.格式(“2006 - 01 - 02 t15:04:05z”)fmt.Println(e)storiesParams.光标=可选.部份(“*”)}fmt.Println(“在下次投票前睡5分钟……”)fmt.Println("------------")时间.睡眠(时间.持续时间(300)*时间.第二个)}}
分页的结果
API每次调用最多返回100个故事。这个工作流程向您展示了如何使用<代码>光标代码>将多个调用链接在一起,并一次检索100多个故事。
获取大量排序结果:游标
API支持使用<代码>光标代码>浏览结果。在API中,a<代码>光标代码>是一个逻辑概念,它不缓存服务器上的任何状态信息。相反,返回给客户端的最后一个故事的排序值用于计算<代码>next_page_cursor代码>,表示排序值的有序空间中的逻辑点。那<代码>next_page_cursor代码>可以在后续请求的参数中指定,告诉API在哪里继续。
使用游标
使用一个<代码>光标代码>使用API,指定a<代码>光标代码>参数的值<代码>*代码>.这与声明page=1告诉API“从我排序结果的开头开始”是一样的,只不过它还通知API您想要使用游标。默认值<代码>光标代码>是<代码>*代码>除非你另有说明。除了返回前N个排序结果(其中您可以使用<代码>per_page代码>参数)的API响应还将包括一个名为<代码>next_page_cursor代码>.
然后你拿着<代码>next_page_cursor代码>的字符串值,并将其作为<代码>光标代码>下一个请求的参数。您可以重复这个过程,直到取到您想要的所有故事,或者直到<代码>next_page_cursor代码>返回匹配<代码>光标代码>您已经指定-表明没有更多的结果。
使用每页属性
API支持使用<代码>per_page代码>指定最大故事数每个页面。此参数用于对查询结果进行分页。此参数可能的值为之间1来One hundred..
例子
下面的示例展示了如何检索所有故事英语,那是关于体育发表于1小时前而且现在.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))deffetch_new_stories(参数个数={}):fetched_stories=[]故事=没有一个而故事是没有一个或len(故事)>0:试一试:响应=api_instance.list_stories(**参数个数)除了ApiException作为e:如果(e.状态= =429):打印(“超过了使用限制。等60秒……”)时间.睡眠(60)继续故事=响应.故事参数个数[“光标”]=响应.next_page_cursorfetched_stories+ =故事打印(“获取% d的故事。迄今为止的故事总数:%d”%(len(故事),len(fetched_stories)))返回fetched_stories参数个数={“语言”:[“en”),“标题”:“启动”,“published_at_start”:“NOW-1HOUR”,“published_at_end”:“现在”,“光标”:‘*’,“sort_by”:“published_at”}故事=fetch_new_stories(参数个数)打印('************')打印(“在标题中提到‘startup’的抓取故事,是英文的,并且在%s到%s之间发布”%(len(故事),参数个数[“published_at_start”),参数个数[“published_at_end”)))
#加载宝石需要“aylien_news_api”deffetch_new_stories(参数个数={})fetched_stories=[]故事=零而故事.nil ?||故事.大小>0开始结果=api_instance美元.list_stories(参数个数)救援AylienNewsApi::ApiError= >e如果e.代码= =429把“超过了使用限制。等了30秒……”睡眠(30.)重试结束结束故事=结果.故事故事.每一个做|故事|把故事.标题结束参数个数[:光标]=结果.next_page_cursorfetched_stories+ =故事把“获取# {故事.大小}的故事。到目前为止的总故事数:# {fetched_stories.大小}"结束fetched_stories结束#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束创建一个API类的实例api_instance美元=AylienNewsApi::DefaultApi.新选择={:标题= >“启动”,: published_at_start= >“NOW-10HOURS”,: published_at_end= >“现在”,: per_page= >5,: sort_by= >“published_at”}故事=fetch_new_stories(选择)把“*”*80把“获取# {故事.大小}故事。”
varAylienNewsApi=需要(”aylien-news-api”);函数睡眠(时间){返回新承诺((解决)= >setTimeout(解决,时间));}异步函数fetchNewStories(选择){让fetchedStories=[];让故事=零;做{等待新承诺((解决,拒绝)= >{apiInstance.listStories(选择,(错误,数据,响应)= >{如果(错误){如果(响应.状态= =429){控制台.日志(”超过使用限制。等待30秒……”);睡眠(30.*1000).然后(函数() {解决();});}其他的{拒绝(错误);}}其他的{选择.光标=数据.nextPageCursor;故事=数据.故事;fetchedStories=fetchedStories.concat(故事);控制台.日志("获取"+故事.长度+"的故事。到目前为止的总故事数:"+fetchedStories.长度);解决();}})})}而(故事.长度>0);返回fetchedStories;}varapiInstance=新AylienNewsApi.DefaultApi();vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';var选择={”语言”:[”在”),”publishedAtStart”:”NOW-1HOUR”,”publishedAtEnd”:”现在”,”categoriesTaxonomy”:”iab-qag”,”categoriesId”:[”IAB17”),”光标”:”*”,”perPage”:16};fetchNewStories(选择).然后(函数(故事){控制台.日志(”**************”);控制台.日志(”获取”+故事.长度+”都是关于体育的英文故事”+”从一小时前到现在”);});
包主要进口(“时间”“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApifetchNewStories:=函数(apiInstance*newsapi.DefaultApiService,参数个数*newsapi.ListStoriesOpts)[]newsapi.故事{varfetchedStories[]newsapi.故事var故事[]newsapi.故事isFirstCall:=真正的为isFirstCall||len(故事)>0{storiesResponse,res,犯错:=apiInstance.ListStories(上下文.背景(),参数个数)如果犯错! =零{恐慌(犯错)}如果res.StatusCode= =429{fmt.Println(“超过了使用限制。等待60秒……”)时间.睡眠(时间.持续时间(60)*时间.第二个)继续}isFirstCall=假故事=storiesResponse.故事参数个数.光标=可选.部份(storiesResponse.NextPageCursor)fetchedStories=附加(fetchedStories,故事...)fmt.Printf(“获取% d的故事。迄今为止的故事总数:%d\ n",len(故事),len(fetchedStories))}返回fetchedStories}storiesParams:=&newsapi.ListStoriesOpts{光标:可选.部份(“*”),PerPage:可选.NewInt32(10),PublishedAtStart:可选.部份(“NOW-12HOURS”),PublishedAtEnd:可选.部份(“现在”),SortBy:可选.部份(“published_at”),标题:可选.部份(“启动”),}故事:=fetchNewStories(api,storiesParams)fmt.Println("***************")fmt.Printf(“精选的英文故事,是关于创业公司的,发布时间在%s到%sn之间”,len(故事),storiesParams.PublishedAtStart,storiesParams.PublishedAtEnd)}
排序结果
控件选择结果排序的方式<代码>sort_by代码>参数。这允许您首先接收最相关的查询结果,相关性基于您选择的参数值。
的<代码>sort_by代码>参数可以取以下值之一:
相关性
使用相关性值返回与搜索输入最接近的新闻。参数值为<代码>相关性代码>.
近因
有两种方法来排序你的结果最近:
- 使用<代码>近因代码>价值为最近发布的文章提供了更高的排名,同时也为你的查询提供了权重。
- 使用<代码>published_at代码>因为这里的值只会根据你的退货商店发布的时间来给你的结果排名。
暑热
使用<代码>暑热代码>价值为最近发布的文章提供了更高的排名,但也为社交媒体分享、入站链接和Alexa排名提供了权重。
社交媒体的股票
这是可能的排序您的结果根据以下社交媒体基于指标:
- 股票LinkedIn(<代码>social_shares_count.linkedin代码>)
- 问题上Reddit(<代码>social_shares_count.reddit代码>)
- 上述所有网络的股份总数(<代码>social_shares_count代码>)
数量的照片
该值允许用户根据页面上的照片数量对结果进行排名。参数值为<代码>media.images.count代码>.
数量的视频
允许用户根据页面中视频的数量对搜索结果进行排名。参数值为<代码>media.videos.count代码>.
Alexa排名
Alexa是一个排名系统,根据网站在过去3个月产生的流量来排名。网站的流量越多,排名就越高。例如,Google.com的排名是1,BBC.co.uk的排名是100左右,等等。Alexa为用户提供了两种选择,当寻找网站的排名:
- 全球排名,根据一个网站在全球的受欢迎程度
- 国家排名,根据一个网站在一个特定国家的受欢迎程度。世界上每个国家都可以使用,通过添加<一个href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166 - 1α2一个>参数的国家代码。要了解更多信息,请查看我们的主页<一个href="//www.daredevilro.net/docs/newsapi/common-workflows">Alexa排名一个>.
上面的每个参数都可以按升序或降序值对结果进行排序。这是通过进入其中之一来实现的<代码>一个sc代码>或<代码>desc代码>的值<代码>sort_direction代码>参数。如果未声明此参数,则按降序返回结果。
例子
下面的代码收集了提到的故事棒球从上个月并根据最近的时间进行分类。
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“published_at_start”:“NOW-1MONTH”,“published_at_end”:“现在”,“entities_title_links_wikipedia”:[“https://en.wikipedia.org/wiki/Baseball],”sort_by“:”published_atapi_response = api_instance.list_stories(**params) print('的API有被被称为成功.”)打印('=====================================')在api_response中查找故事。故事:打印(故事。标题+“/”+故事.源.的名字)除了ApiException作为 e: print("Exception when calling DefaultApi->list_stories: %sn" % e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: published_at_start= >“NOW-1MONTH”,: published_at_end= >“现在”,: entities_body_links_wikipedia= >[“https://en.wikipedia.org/wiki/Baseball”),: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB17”),:语言= >[“en”),: sort_by= >“published_at”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”语言”:[”在”),”entitiesBodyLinksWikipedia”:[”https://en.wikipedia.org/wiki/Baseball”),”categoriesTaxonomy”:”iab-qag”,”categoriesId”:[”IAB17”),”publishedAtStart”:”NOW-1MONTH”,”publishedAtEnd”:”现在”,”sortBy”:”published_at”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志("\ n"+数据.故事[我]。标题+"\ n"+数据.故事[我]。源.的名字,数据.故事[我]。源.排名);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{语言:可选.NewInterface([]字符串{“en”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),CategoriesTaxonomy:可选.部份(“iab-qag”),CategoriesId:可选.NewInterface([]字符串{“IAB17”}),SortBy:可选.部份(“published_at”),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.源.的名字,“/”,故事.标题)}}
布尔操作符
布尔操作符允许您将布尔逻辑应用于查询,要求字段中存在或不存在特定的术语或条件,以匹配文档。下表总结了标准查询解析器支持的布尔操作符。
布尔操作符 | 替代符号 | 描述 |
---|---|---|
不 | !代码> |
要求下列术语不存在。 |
和 | & &代码> |
要求布尔运算符两边的两个词都出现匹配。 |
+代码> |
要求下列项存在。 | |
-代码> |
禁止下列术语(即匹配不包括该术语的字段或文档)。操作符在功能上类似于布尔操作符!。因为它被谷歌等流行搜索引擎使用,所以一些用户社区可能更熟悉它。 | |
或 | ||代码> |
要求其中一个术语(或两个术语)出现在匹配中。 |
布尔运算符NOT (!)
NOT操作符排除包含NOT后面的术语的文档。这相当于使用集合进行差分。象征!可以用来代替NOT这个词。
以下查询搜索包含短语“jakarta apache”但不包含短语“apache Lucene”的文档:
“jakarta apache”不是“apache Lucene”代码>
“jakarta apache”!“Apache Lucene”代码>
布尔运算符AND (&&)
AND操作符匹配两个术语都存在于单个文档文本中任何位置的文档。这相当于用集合求交集。符号&&可以用来代替单词AND。
要搜索包含“jakarta apache”和“apache Lucene”的文档,可以使用以下查询:
“jakarta apache”和“apache Lucene”代码>
“jakarta apache”&&“apache Lucene”代码>
布尔运算符+
+符号(也称为“required”操作符)要求+符号后的术语至少存在于一个文档中的某个字段中,以便查询返回匹配。
例如,要搜索必须包含“jakarta”且可能包含或不包含“lucene”的文档,可以使用以下查询:
+雅加达lucene代码>
布尔运算符-
-符号或“禁止”操作符排除了-符号后包含术语的文档。
例如,要搜索包含“jakarta apache”但不包含“apache Lucene”的文档,使用以下查询:
“jakarta apache”-“apache Lucene”代码>
布尔运算符OR (||)
OR运算符是默认的连接运算符。这意味着如果两个术语之间没有布尔运算符,则使用OR运算符。OR操作符链接两个词,如果其中任何一个词存在于文档中,则查找匹配的文档。这相当于使用集合进行联合。符号||可以用来代替OR一词。
例如,要搜索包含“jakarta apache”或只包含“jakarta”的文档,使用以下查询:
雅加达雅加达apache代码>
或
"jakarta apache"或者jakarta代码>
分组术语以形成子查询
API支持使用圆括号对子句进行分组以形成子查询。如果您想要控制查询的布尔逻辑,这可能非常有用。
下面的查询搜索“jakarta”或“apache”和“website”:
(雅加达或apache)和网站代码>
这增加了查询的精确性,要求存在术语“website”,以及术语“jakarta”和“apache”。
先进的关键字运营商
News API允许您进行“智能”关键字查询,方法是将操作符应用到搜索中,为搜索的关键字添加额外的条件以满足。这些操作符(Boosting和Proximity搜索)可以在AQL语法中使用,该语法提供给News API<代码>一个ql代码>参数。
提高
当使用许多关键字进行查询时,有时其中一个关键字比其他关键字更重要。提升让你能够为更重要的关键字/关键字添加权重,这样提及这些关键字的结果便会获得“提升”,从而让它们在结果排名中占据更靠前的位置。
例如,搜索[“John”,“Frank”,“Sarah”]会给每个词同等的权重,但[“John”,“Frank”^2,“Sarah”]就像是说提到“Frank”比提到“John”或“Sarah”要重要两倍。因此,提到“Frank”的故事在搜索结果中的排名会更高。
Boosting并不是最终的关键字搜索输入,它只是允许用户指定一个列表中的优势关键字(即,如果一个报道中多次提到未进行Boosting搜索的关键字,那么它仍然可以在许多报道中提到一个改进的关键字之前返回)。因此,boost不会从结果中排除故事,它只会影响返回结果的顺序。
增加的例子
该参数可以搜索Twitter、谷歌或Facebook,但会将提及Facebook的报道提高5倍。将该操作符应用于其他关键字,看看它如何影响结果
选择={“aql”:'标题:(“Twitter”或“谷歌”或“Facebook”^2)',“sort_by”:“相关性”}
选择={”aql”:”标题:(“Twitter”或“谷歌”或“Facebook”^2)”,”sort_by”:”相关性”}
Aql:可选.部份("标题:('Twitter' OR '谷歌' OR 'Facebook'^2)"),SortBy:可选.部份(“相关性”)
选择={aql:'标题:(“Twitter”或“谷歌”或“Facebook”^2)'sort_by:“相关性”}
接近
我们感兴趣的实体或事件经常以不同的顺序被提及。例如,汇丰在中国的部门可以以多种形式出现:“汇丰中国”,“汇丰在中国的分支机构”,“在中国,汇丰正在引入新的……”等。
接近搜索是一种功能,使用户可以扩大搜索条件以返回这些组合。“接近”指的是一个故事中两个搜索词之间的距离。例如,<代码>”汇丰中国”~ 5代码>只会返回提到“汇丰”和“中国”的文章,这两个词之间最多不超过四个词。
选择={“aql”:的文字:“汇丰中国”~ 5 ',“published_at_start”:“NOW-14DAYS /天”}
选择={”aql”:”文本:“汇丰中国”~ 5””published_at_start”:”NOW-14DAYS /天”}
storiesParams:=&newsapi.ListStoriesOpts{Aql:可选.部份(“文本:汇丰中国~ 5”),PublishedAtStart:可选.部份(“NOW-14DAYS /天”)}
选择={aql:标题:汇丰银行,中国~ 5”,published_at_start:“NOW-14DAYS /天”}
使用实体
什么是实体?
实体是指在新闻报道中提到的真实事物,新闻API会用元数据进行标记,这样用户就可以准确地了解新闻内容中正在讨论的内容。以下数据点适用于每个实体:
- 的表面形式(年代)(故事中提到实体的文本)
- 的类型它是实体
- 一个维基百科的链接到该实体的维基百科页面(如果适用)
- 一个Wikidata链接(如果适用)
- 的情绪在故事中对它的表达
- 的指数表面形式(故事中提到实体的索引)
- 的突出实体(实体在一篇文章中的突出程度)
- 的频率实体的数量(该实体在一篇文章中被提及的次数)
为什么使用实体而不是关键字?
关键词可以指多个事物,多个关键词可以指多个事物。News API的实体特性认识到而且避免真实世界的人物、公司和新闻中提到的事情,超越关键词,提供更准确的新闻分析数据。
在构建搜索时,使用实体有两个高级好处:
首先,当一个实体通常由多个不同的关键字引用时,News API是正确的承认每一个提及的实体。例如,看看新闻API是如何识别实体“大都会人寿”的,即使公司的名字被提到了:
“股票大都会人寿保险今天早上大跌。” | ”大都会人寿宣布新的保险产品。” | |
---|---|---|
面形式 | “大都会人寿保险” | “大都会” |
实体名称 | 大都会人寿 | 大都会人寿 |
实体类型 | 业务、组织 | 业务、组织 |
实体的URI | “https://en.wikipedia.org/wiki/MetLife” | “https://en.wikipedia.org/wiki/MetLife” |
第二,实体模型避免提到:当一个关键字可以引用多个实体时,News API将考虑文档的其余部分,以便准确预测被引用的对象。举个例子,看看下面两个提到关键字“square”的句子,看看News API如何将它们识别为不同的实体,以及它如何返回一些关键信息:
抗议活动在该镇开始广场.” | ”广场是杰克·多尔西创立的。” | |
---|---|---|
面形式 | “广场” | “广场” |
实体名称 | 广场 | 广场有限公司 |
实体类型 | 位置 | 组织 |
维基百科的URL | 没有一个 | https://en.wikipedia.org/wiki/Square, _Inc。 |
Wikidata URL | 没有一个 | https://www.wikidata.org/wiki/Q7581990 |
实体类型(以及何时使用它们)
正如上述Square和MetLife的实体类型是“Business”和“Organization”,News API识别的每个实体都有一个类型。
这些类型可以从Wikipedia和Wikidata中提取,如果不适用,可以通过News API实时预测。例如,纽约证券交易所实体的类型为“Stock_exchange”,从Wikipedia & Wikidata提取,但是实体“Jeremy Draper”的类型为“Human”,尽管它没有Wikipedia页面。
有两种方法可以使用实体类型来构建智能搜索——简单搜索和增强搜索。
在平面搜索中,实体参数没有链接,因此下面的参数将返回提到MetLife和mention的故事任何证券交易所:
“entities.links.wikipedia[]”:[“https://en.wikipedia.org/wiki/MetLife”),“entities.type[]”:[“Stock_exchange”]
: entities_links_wikipedia= >[“https://en.wikipedia.org/wiki/MetLife”),: entities_type= >[“Stock_exchange”]
”entitiesLinksWikipedia”:["https://en.wikipedia.org/wiki/MetLife"),”entitiesType”:["Stock_exchange"]
EntitiesLinksWikipedia:可选.NewInterface([]字符串{“https://en.wikipedia.org/wiki/MetLife”}),EntitiesType:可选.NewInterface([]字符串{“Stock_exchange”})
实体类型列表
实体类型的结构是父子关系,几乎所有顶级实体类型都有子实体类型。
顶级实体类型
货币 | 位置 | 人类 | 组织 |
Product_(业务) | 职业 | 技术 | 风险 |
零售 | Regulation_ (European_Union) |
组织类型的子实体类型:
Advocacy_group | 银行 | Bank_holding_company | Brick_and_mortar |
业务 | Certificate_authority | Civil_service | Commercial_bank |
社区 | 公司 | Conglomerate_(公司) | Conservation_authority_ (_Canada安大略省) |
Consumer_organization | Corporate_group | 公司 | Credit_bureau |
Deliberative_assembly | Educational_organization | Emergency_service | Environmental_organization |
Financial_institution | 政府 | Holding_company | Investment_banking |
Investment_company | Law_commission | Law_enforcement_organization | Local_federation |
Local_government | National_research_and_education_network | 报纸 | Nonprofit_organization |
最高法院 | Political_organisation | Private-equity_firm | Privately_held_company |
Public_company | Ruling_party | Social_movement_organization | Standards_organization |
Stock_exchange | 子公司 | Technology_company | Think_tank |
Vorstand |
地理位置类型的子实体类型:
城市 | 国家 | 位置 | Island_country |
Sovereign_state | 的态势(政体) | U.S._state |
风险类型的儿童实体类型:
商业风险 | 危害 | 外部风险 | 金融风险 |
Operational_risk | 脆弱性 |
产品类型的子实体类型:
软件 | Software_as_a_service | Stock_market_index |
使用AQL增强实体搜索
News API允许对实体对象进行增强查询,使您能够为单个实体指定要满足的多个条件。例如,当实体也是“组织”类型时,您可以指定提到“Square”实体的故事,或者您可以返回以否定语气提到特定实体的故事。
方法提供一个嵌套查询<代码>一个ql代码>参数,它接受<代码>实体:{{}}代码>作为一个值,在这个值中,您可以以基于lucene的语法为实体提供一个参数列表。您可以使用下面的参数。
AQL参数 | 描述 |
---|---|
元素代码> |
故事中应该提到实体的部分(接受“标题”或“正文”) |
surface_forms代码> |
实体的一种特定形式(<代码>”苹果”或“苹果电脑”代码>) |
id代码> |
实体的AYLIEN ID |
links.wikipedia代码> |
实体的维基百科链接 |
links.wikidata代码> |
实体的wikidata链接 |
情绪代码> |
对这个实体所表达的情绪 |
stock_ticker代码> |
实体的股票行情 |
overall_prominence代码> |
在一篇文章中突出的实体。从0到1的值,其中0表示没有文章显著性,1表示文章显著性非常高 |
频率代码> |
一个实体在文章标题或正文中被提及的次数。应与元素参数 |
overall_frequency代码> |
一个实体在一篇文章中被提及的次数。 |
例子:
下面的例子搜索了过去10天的英语故事,在标题中也提到了一个被称为“苹果”的实体,该实体也被认为是一个组织。
进口aylien_news_api进口json从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”配置.宿主=“https://api.www.daredevilro.net/news”api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))选择={“aql”:"实体:{{element:title AND surface_forms:Apple AND type:Organization}}",“categories_taxonomy”:“iptc-subjectcode”,“categories_id”:[“04000000”),“语言”:[“en”]}试一试:api_response=api_instance.list_stories(**选择)pprint(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”需要“页”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“你的应用程序ID”#取消下面一行的注释,为API键设置一个前缀。'不记名'(默认为nil)#配置。api_key_prefix['X-AYLIEN-NewsAPI-Application-ID'] = 'Bearer'#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“你的API键”#取消下面一行的注释,为API键设置一个前缀。'不记名'(默认为nil)#配置。api_key_prefix['X-AYLIEN-NewsAPI-Application-Key'] = 'Bearer'结束api_instance=AylienNewsApi::DefaultApi.新选择={aql:"实体:{{element:title AND surface_forms:Apple AND type:Organization}}",categories_taxonomy:“iptc-subjectcode”,categories_id:[“04000000”),语言:[“en”]}开始#列出的故事结果=api_instance.list_stories(选择)页结果救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要("aylien-news-api");vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。“令牌”(默认为空)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”你的API密匙”;//取消下面一行的注释,为API键设置一个前缀。“令牌”(默认为空)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”aql”:”实体:{{element:title AND surface_forms:Apple AND type:Organization}}”;”语言”:[”在”),”publishedAtStart”:”NOW-1MONTH”,apiInstance.listStories(选择,(错误,数据,响应)= >{如果(错误){控制台.错误(错误);}其他的{控制台.日志(数据.故事);}});
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{Aql:可选.部份("实体:{{element:title AND surface_forms:Apple AND type:Organization}}"),CategoriesTaxonomy:可选.部份(“iptc-subjectcode”),CategoriesId:可选.NewInterface([]字符串{“04000000”}),语言:可选.NewInterface([]字符串{“en”})}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.PublishedAt,故事.标题,“/”,故事.源.的名字)}}
示例嵌套查询1:指定正在搜索的实体类型
下面的参数返回提到两个满足给定条件的实体的事例。
参数={“aql”:'实体:{{stock_ticker:GOOGL AND destin_score:[0.7 TO 1.0]}} AND实体:{{links.wikipedia:"https://en.wikipedia.org/wiki/Microsoft" AND overall_sentiment:positive}}'“语言”:[“en”]}
var选择={”aql”:”实体:{{stock_ticker:GOOGL AND procurence_score:[0.7 TO 1.0]}} AND实体:{{links.wikipedia:"https://en.wikipedia.org/wiki/Microsoft" AND overall_sentiment:positive}}”,”语言”:[”在”]}
选择={aql:'实体:{{stock_ticker:GOOGL AND destin_score:[0.7 TO 1.0]}} AND实体:{{links.wikipedia:"https://en.wikipedia.org/wiki/Microsoft" AND overall_sentiment:positive}}',语言:[“en”]}
storiesParams:=&newsapi.ListStoriesOpts{Aql:可选.部份(”实体:{{stock_ticker:GOOGL和prominence_score:[0.7来1.0]}}和实体:{{链接.维基百科:“https://en.wikipedia.org/wiki/Microsoft”和overall_sentiment:积极的}}”),语言:可选.NewInterface([]字符串{“en”})}
示例嵌套查询2:基于实体的随时间变化的情绪
根据时间序列端点上的实体级情绪进行搜索,将返回对给定实体表达的情绪的高度准确的数据。
选择={“aql”:"实体:{{元素:title AND id:Q312 AND类型:Organization AND sentiment:positive}}",“publised_at_start”:“NOW-10DAYS”,“期”:“+ 1日”,“语言”:[“en”]}
var选择={”aql”:”实体:{{元素:title AND id:Q312 AND类型:Organization AND sentiment:positive}}”,”publishedAtStart”:”NOW-10DAYS”,”期”:”+ 1天”,”语言”:[”在”]}
选择={aql:'entities:{{element:title AND id:Q312 AND type:Organization AND sentiment:positive}}',published_at_start:“NOW-10DAYS”,期:“+ 1日”,语言:[“en”]}
storiesParams:=&newsapi.ListStoriesOpts{Aql:可选.部份("实体:{{元素:title AND id:Q312 AND类型:Organization AND sentiment:positive}}"),PublishedAtStart:可选.部份(“NOW-10DAYS”),期:可选.部份(“+ 1日”),语言:可选.NewInterface([]字符串{“en”})}
处理日期
日期格式
所使用的格式是dateTime规范表示的受限形式<一个href="https://www.w3.org/TR/xmlschema-2/">XML模式规范(ISO 8601)一个>:
YYYY-MM-DDThh: mm: ssZ代码>
YYYY代码>是一年。
毫米代码>是一个月。
DD代码>是这个月的哪一天。
T代码>是一个“T”字面值字符,表示时间字符串的开始。
hh代码>一天中的每小时和24小时的时钟一样。
毫米代码>是分钟。
党卫军代码>是秒。
Z代码>是一个文字'Z'字符表明该字符串表示的日期是在UTC
注意,不能指定时区;日期的字符串表示总是用协调世界时(UTC)表示。下面是一个示例值:
2016 - 03 - 27 - t13:47:26z代码>
如果愿意,可以选择包括小数秒,但是毫秒以外的精度将被忽略。下面是包含亚秒值的例子:
2016 - 03 - 27 - t13:47:26.822z代码>
2016 - 03 - 27 - t13:47:26.82z代码>
2016 - 03 - 27 - t13:47:26.8z代码>
日期计算
日期字段类型还支持日期数学表达式,这使得创建相对于固定时间的时间变得容易,包括可以使用特殊值“NOW”表示的当前时间。
日期数学语法
日期数学表达式可以做两件事:它们可以通过向当前时间添加时间单位来指定时间段,也可以将时间四舍五入到指定单位。表达式可以被链接起来,并从左到右计算。
例如:这表示两个月后的一个时间点,从毫秒算起:
现在+ 2个月代码>
这是一天前,毫秒级的数据:
NOW-1DAY代码>
斜杠用于表示四舍五入。下面是昨天的一个时间点,四舍五入到前一个小时,以毫秒的精度(例如,当前时间是15:42:17.2165,下面的点是昨天15:00:00.0000):
NOW-1DAY /小时代码>
以下是昨天00:00:00.0000AM的数据:
NOW-1DAY /天代码>
以下是Date Math中支持的关键字:
日期部分关键字 | 选择关键字 | 描述 | 圆的一部分? |
---|---|---|---|
现在 | 它表示当前日期时间。 |
|
|
一年 | 年 | 它表示日期时间的年份部分。 |
|
月 | 个月 | 它表示日期时间的月份部分。 |
|
一天 | 天 日期 |
它表示日期时间的日部分。 |
|
小时 | 小时 | 它表示日期时间的小时部分。 |
|
一分钟 | 分钟 | 它表示日期时间的分分钟部分。 |
|
第二个 | 秒 | 它表示日期时间的第二部分。 |
|
使用位置
有三种方法可以使用News API中的位置。下面我们概述这三种方法。
基于源位置
描述
源位置指的是源所在的位置,它允许您将结果筛选为在特定位置发布的故事。
请注意,国家值以ISO格式提供,而城市和州的值则不是。
例子
下面的示例显示如何检索关于的故事政治这些都来自于佛罗里达.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))选择={“语言”:[“en”),“published_at_start”:“NOW-10DAYS”,“published_at_end”:“现在”,“categories_taxonomy”:“iptc-subjectcode”,“categories_id”:[“11000000”),“source_locations_country”:[“我们”),“source_locations_state”:[“佛罗里达”]}试一试:#列出的故事api_response=api_instance.list_stories(**选择)打印(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: published_at_start= >“NOW-10DAYS”,: published_at_end= >“现在”,:语言= >[“en”),: categories_taxonomy= >“iptc-subjectcode”,: categories_id= >[“11000000”),: source_locations_country= >[“我们”]: source_locations_state= >[“佛罗里达”]}开始#列出的故事结果=api_instance.list_stories(选择)结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.位置}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;varapiInstance=新AylienNewsApi.DefaultApi();//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';var选择={”sortBy”:”published_at”,”语言”:[”在”),”publishedAtStart”:”NOW-10DAYS”,”publishedAtEnd”:”现在”,”sourceLocationsCountry”:[”我们”),”sourceLocationsState”:[”佛罗里达”),”perPage”:10};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{/ / console.log (data.stories [0] .source.locations [0] .country);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。源);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{SourceLocationsCountry:可选.NewInterface([]字符串{“我们”}),SourceLocationsState:可选.NewInterface([]字符串{“佛罗里达”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),CategoriesTaxonomy:可选.部份(“iptc-subjectcode”),CategoriesId:可选.NewInterface([]字符串{“11000000”}),PerPage:可选.NewInt32(10),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
基于源范围
描述
来源范围是指新闻来源所涵盖的地理区域。例如,一个新闻来源可能会报道当地、全国或国际新闻,他们也可能只报道与特定城市、州或国家有关的新闻。源范围允许您按范围过滤新闻。
例子
下面的示例显示如何检索关于的故事业务,由报道的来源出版伦敦的城市,发表于30天前而且现在并按它们的发表在价值。
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“published_at_start”:“NOW-30DAYS”,“published_at_end”:“现在”,“sort_by”:“published_at”,“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB3”),“source_scopes_city”:[“伦敦”]}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={:标题= >"startup AND(提高或提高或提高或提高)",: published_at_start= >“NOW-30DAYS”,: published_at_end= >“现在”,:语言= >[“en”),: sort_by= >“published_at”,: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB3”),: source_scopes_city= >[“伦敦”]}开始#列出的故事结果=api_instance.list_stories(选择)结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.源.作用域}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”sortBy”:”published_at”,”publishedAtStart”:”NOW-30DAYS”,”publishedAtEnd”:”现在”,”sourceScopesCity”:[”伦敦”),”sourceScopesCountry”:[”GB”]};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{为(我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。源,数据.故事[我]。标题);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{SourceScopesCity:可选.NewInterface([]字符串{“伦敦”}),SourceScopesCountry:可选.NewInterface([]字符串{“GB”}),标题:可选.部份(“餐馆”),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(10),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,“/”,故事.源.的名字)}}
基于提到的地点
描述
“提及地点”用于确定某一地点作为关键字或实体在新闻标题或正文中被提及。
例子
下面的示例展示了如何检索中的故事英语,是关于电动汽车与旧金山中提到他们的标题,发表于30天前而且现在和排序公布日期及时间.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException从pprint进口pprint配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“published_at_start”:“NOW-30DAYS”,“published_at_end”:“现在”,“sort_by”:“published_at”,“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB2-10”),“entities_title_links_wikipedia”:[“https://en.wikipedia.org/wiki/San_Francisco”]}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: published_at_start= >“NOW-30DAYS”,: published_at_end= >“现在”,:语言= >[“en”),: sort_by= >“published_at”,: entities_title_links_wikipedia= >[“https://en.wikipedia.org/wiki/San_Francisco”]}开始#列出的故事结果=api_instance.list_stories(选择)结果.故事.每一个做|故事|把故事.标题结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”sortBy”:”published_at”,”entitiesTitleLinksWikipedia”:[”https://en.wikipedia.org/wiki/San_Francisco”]};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{为(我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题,数据.故事[我]。实体.标题);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{EntitiesTitleLinksWikipedia:可选.NewInterface([]字符串{“https://en.wikipedia.org/wiki/San_Francisco”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(10),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题)}}
媒体元素
许多故事包含图片或视频等媒体以及文本,这对一些用户来说可能很有价值,这取决于他们所构建的内容。一些用户只对带有视频内容的故事感兴趣,以提高点击率,而其他用户如果考虑到终端用户的加载时间,则不希望在结果中出现视频,因为在较差的连接上加载视频需要稍长的时间。
News API允许你:
- 指定您的结果是否应该包括这些媒体
- 指定您的结果应该包含的图像或视频的数量(这可以是一个确切的数字,一个范围,或最小或最大)
- 根据所包含的图片或视频的数量对结果进行排序
- 指定故事中的媒体格式
- 用直方图端点显示媒体中的定量趋势
指定故事中的媒体数量
可以指定查询返回的故事是否应该包含媒体,还可以使用<代码>media.images.count代码>或者是<代码>media.videos.count代码>参数。
- 通过设置<代码>media.images.count.min代码>对于1,您指定查询只返回至少具有一个图像的故事。
- 通过设置<代码>media.videos.count.min代码>1,<代码>media.videos.count.max代码>同样对于1,您指定只需要恰好包含一个视频的结果。
- 通过设置<代码>media.videos.count.max代码>到0,您将从结果中排除任何带有视频的故事。
按媒体数量排序
要在结果中显示图像较少的故事之前显示图像较多的故事,请设置<代码>sort_by代码>参数<代码>media.images.count代码>,<代码>sort_direction代码>参数<代码>desc代码>.无论何时使用<代码>sort_by代码>参数,排序方向将自动按降序排列(即参数中结果最多的故事将首先显示)。要扭转此默认值,请设置<代码>sort_by代码>参数<代码>一个sc代码>,它将按升序对结果进行排序。
媒体格式和大小
控件可以返回或排除包含指定格式图像的新闻<代码>媒体.我mages.format []代码>参数。这可以帮助您避免使用这些格式可能出现的任何技术问题。
图像格式可以作为参数使用:
- 骨形态发生蛋白
- GIF
- JPEG
- PNG
- TIFF
- PSD
- 图标
- 坏蛋
- WEBP
- SVG
还可以通过追加来指定最大和最小高度、宽度和内容长度<代码>.min代码>或<代码>.max代码>到以下参数:
media.images.width代码>
media.images.height代码>
media.images.content_length代码>
例子
下面的代码收集了提到的故事健身与完全一个视频而且没有GIF图像从上个月开始的。
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB7”),“文本”:“健身”,“语言”:[“en”),“media_videos_count_min”:1,“media_videos_count_max”:1,“not_media_images_format”:[“GIF”),“published_at_start”:“NOW-1MONTH”,“published_at_end”:“现在”,“sort_by”:“相关性”}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(“API已成功调用。”)打印('=====================================')为故事在api_response.故事:打印(故事.标题+“/”+故事.源.的名字)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB7”),:文本= >“健身”,:语言= >[“en”),: media_videos_count_min= >1,: media_videos_count_max= >1,: not_media_images_format= >[“GIF”),: published_at_start= >“NOW-1MONTH”,: published_at_end= >“现在”,: sort_by= >“相关性”}开始#列出的故事结果=api_instance.list_stories(选择)把“API已成功调用。”把'====================================='结果.故事.每一个做|故事|把"# {故事.标题}/# {故事.媒体}"结束救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"把e.response_body结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”categoriesTaxonomy”:”iab-qag”,”categoriesId”:[”IAB7”),”文本”:”健身”,”语言”:[”在”),”mediaVideosCountMin”:1,”mediaVideosCountMax”:1,”notMediaImagesFormat”:[”GIF”),”publishedAtStart”:”NOW-1MONTH”,”publishedAtEnd”:”现在”,”sortBy”:”相关性”};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(”API已成功调用。”);控制台.日志(”=====================================”);为(var我=0;我<数据.故事.长度;我++){控制台.日志(数据.故事[我]。标题,数据.故事[我]。媒体);}}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{标题:可选.部份(“健身”),MediaImagesCountMin:可选.NewInt32(1),MediaVideosCountMax:可选.NewInt32(1),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(10),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,"\ n \ n",故事.媒体)}}
Alexa的排名
Alexa流量排名是对一个网站在互联网上受欢迎程度的估计。它是通过衡量一个网站在滚动的3个月期间获得的流量来确定的。Alexa的排名是0- 50000 +。Alexa排名较低的网站将拥有较高的流量。例如,谷歌的Alexa排名为1。
Alexa可以根据来自整个世界的流量或基于你输入的任何单一国家的流量为网站提供一个排名。
- 全球排名,基于一个网站在全球的受欢迎程度
- 全国排名,基于一个网站在一个特定国家的受欢迎程度。世界上每个国家都可以使用,通过添加<一个href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166 - 1α2一个>参数的国家代码。
例子
下面的示例显示了在中的文章英语,是关于科学,由资料来源发表的Alexa排名之间的25而且One hundred.发表于1天前而且现在.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))选择={“语言”:[“en”),“published_at_start”:“NOW-1DAY”,“published_at_end”:“现在”,“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB15”),“source_rankings_alexa_rank_min”:25,“source_rankings_alexa_rank_max”:One hundred.}试一试:#列出的故事api_response=api_instance.list_stories(**选择)打印(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: published_at_start= >“NOW-1DAY”,: published_at_end= >“现在”,:语言= >[“en”),: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB15”),: source_rankings_alexa_rank_min= >25,: source_rankings_alexa_rank_max= >One hundred.}开始#列出的故事结果=api_instance.list_stories(选择)把结果救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”语言”:[”在”),”publishedAtStart”:”NOW-1DAY”,”publishedAtEnd”:”现在”,”categoriesTaxonomy”:”iab-qag”,”categoriesId”:[”IAB15”),”sourceRankingsAlexaRankMin”:25,”sourceRankingsAlexaRankMax”:One hundred.};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{为(我=0;我<数据.故事.长度;我++){控制台.日志(”标题:”+数据.故事[我]。标题);控制台.日志(数据.故事[我]。源);控制台.日志(”-------------------------”);}}};apiInstance.listStories(选择,回调);
工作与链接计数
链接计数是对链接或反向链接到一个网站的网站数量的估计。一般来说,链接数较高的站点具有更大的权限和更高的流量。
例子
下面的示例显示了在中的文章英语,是关于科学,由资料来源发表重新连接数之间的100000而且200000发表于1天前而且现在.
从__future__进口print_function进口aylien_news_api从aylien_news_api.rest进口ApiException配置=aylien_news_api.配置()#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_API_KEY”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”配置.宿主=“https://api.www.daredevilro.net/news”#创建一个API类的实例api_instance=aylien_news_api.DefaultApi(aylien_news_api.ApiClient(配置))参数个数={“语言”:[“en”),“published_at_start”:“NOW-1DAY”,“published_at_end”:“现在”,“categories_taxonomy”:“iab-qag”,“categories_id”:[“IAB15”),“source_links_in_count_min”:100000,“source_links_in_count_max”:200000}试一试:#列出的故事api_response=api_instance.list_stories(**参数个数)打印(api_response)除了ApiException作为e:打印("调用DefaultApi时异常->list_stories: %sn"%e)
#加载宝石需要“aylien_news_api”#设置授权AylienNewsApi.配置做|配置|#配置API密钥授权:app_id配置.api_key[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”#配置API密钥授权:app_key配置.api_key[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_APP_KEY”结束api_instance=AylienNewsApi::DefaultApi.新选择={: published_at_start= >“NOW-1DAY”,: published_at_end= >“现在”,:语言= >[“en”),: categories_taxonomy= >“iab-qag”,: categories_id= >[“IAB15”),: source_links_in_count_min= >100000,: source_links_in_count_max= >200000}开始#列出的故事结果=api_instance.list_stories(选择)把结果救援AylienNewsApi::ApiError= >e把当调用DefaultApi->list_stories时异常:# {e}"结束
varAylienNewsApi=需要(”aylien-news-api”);vardefaultClient=AylienNewsApi.ApiClient.实例;//配置API密钥授权:app_idvarapp_id=defaultClient.认证[”app_id”];app_id.apiKey=”YOUR_APP_ID”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_id。apiKeyPrefix = 'Token';//配置API密钥授权:app_keyvarapp_key=defaultClient.认证[”app_key”];app_key.apiKey=”YOUR_API_KEY”;//取消下面一行的注释,为API键设置一个前缀。'Token'(默认为null)/ / app_key。apiKeyPrefix = 'Token';varapiInstance=新AylienNewsApi.DefaultApi();var选择={”语言”:[”在”),”publishedAtStart”:”NOW-15DAYS”,”publishedAtEnd”:”现在”,”sourceLinksInCountMin”:10000};var回调=函数(错误,数据,响应){如果(错误){控制台.错误(错误);}其他的{控制台.日志(数据.故事);}};apiInstance.listStories(选择,回调);
包主要//导入库进口(“背景”“fmt”newsapi“github.com/AYLIEN/aylien_newsapi_go”“github.com/antihax/optional”)函数主要(){cfg:=newsapi.NewConfiguration()cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-ID”]=“YOUR_APP_ID”cfg.DefaultHeader[“X-AYLIEN-NewsAPI-Application-Key”]=“YOUR_API_KEY”客户端:=newsapi.NewAPIClient(cfg)api:=客户端.DefaultApistoriesParams:=&newsapi.ListStoriesOpts{SourceLinksInCountMin:可选.NewInt32(One hundred.),SourceLinksInCountMax:可选.NewInt32(200),CategoriesTaxonomy:可选.部份(“iab-qag”),CategoriesId:可选.NewInterface([]字符串{“IAB17”}),PublishedAtStart:可选.部份(“NOW-1MONTH”),PublishedAtEnd:可选.部份(“现在”),PerPage:可选.NewInt32(10),}storiesResponse,res,犯错:=api.ListStories(上下文.背景(),storiesParams)如果犯错! =零{恐慌(犯错)}_=res为_,故事:=范围storiesResponse.故事{fmt.Println(故事.标题,"\ n \ n",故事.源)}}