导入
搜索可用文章
学习如何使用新闻 API 获取所有可用的文章。
在研究任何主题时,最佳方法是阅读相关新闻来源和博客上发布的不同文章。这有助于拓宽我们对主题的理解,并获取支持论点的证据,同时回答大多数问题。
| 参数 | 类型 | 分类 | 说明 |
|---|---|---|---|
| apiKey | 字符串 | 必填 | 这是API密钥。 |
| q | 字符串 | 必填 | 这些是用于在文章标题、描述和正文内容中查找的关键字。该参数的值最大长度为500个字符。支持高级搜索。使用方法如下:用引号包裹关键字以进行精确匹配("keyword")。在关键字前加+号表示该词必须出现在文章中(+keyword)。在词语前加-号表示该词不能出现在文章中(-keyword)。还可以使用AND、OR和NOT运算符与关键字结合使用。 |
| searchIn | 字符串 | 可选 | 用于限制关键字搜索范围至文章的标题、描述或正文内容。默认情况下,关键字将在整篇文章中进行搜索。 |
| sources | 字符串 | 可选 | 指定希望获取新闻标题的来源。多个来源之间用逗号分隔。可通过Sources端点获取这些来源。单次搜索最多可使用20个来源。 |
| domains | 字符串 | 可选 | 用户希望从中获取新闻的域名,例如 bbc.co.uk。可以有多个域名,用逗号分隔。 |
| excludeDomains | 字符串 | 可选 | 用户不希望从中获取新闻的域名,例如 bbc.co.uk。可以有多个域名,用逗号分隔。 |
| from | 字符串 | 可选 | 指定用户希望结果中最旧的文章日期。也可包含时间。输入格式为 "YYYY-MM-DD" 或 "YYYY-MM-DDTHH:MM:SS"。用户无法请求早于其订阅时间的文章。 |
| to | 字符串 | 可选 | 指定用户希望结果中最新的文章日期。也可包含时间。输入格式为 "YYYY-MM-DD" 或 "YYYY-MM-DDTHH:MM:SS"。 |
| language | 字符串 | 可选 | 用户希望获取新闻的语言代码。可用选项见附录。 |
| sortBy | 字符串 | 可选 | 指定文章排序方式。可用选项见附录。 |
| pageSize | 整数 | 可选 | 每页返回的结果数量,默认为100。 |
| page | 整数 | 可选 | 用于获取指定页码的结果。默认为1。 |
1// 定义端点URL 2const endpointUrl = new URL("https://newsapi.org/v2/everything"); 3 4const headerParameters = { 5 contentType: "application/json", 6}; 7 8// 定义查询参数 9const queryParameters = new URLSearchParams({ 10 apiKey: '{{API_KEY}}', 11 q: 'Metaverse' 12}); 13 14// 设置API调用选项 15const options = { 16 method: "GET", 17 headers: headerParameters, 18}; 19 20// 发起API调用的函数 21async function searchArticles() { 22 try { 23 endpointUrl.search = queryParameters; 24 const response = await fetch(endpointUrl, options); 25 26 // 输出响应 27 printResponse(response); 28 } catch (error) { 29 // 输出错误信息 30 printError(error); 31 } 32} 33 34// 调用函数发起API请求 35searchArticles();
| 名称 | 类型 | 说明 |
|---|---|---|
| status | 字符串 | 请求的状态。如果请求成功,值为ok;否则为error。若请求失败,还会返回code和message字段。 |
| totalResults | 整数 | 与查询匹配的总文章数量。根据pageSize参数,仅显示部分文章。剩余文章可通过设置page参数为对应页码来查看。 |
| articles | 对象数组 | 包含检索到的文章信息的数组。 |
| source | 对象 | 包含发布文章的来源名称和ID。 |
| author | 字符串 | 文章作者姓名。 |
| title | 字符串 | 文章标题。 |
| description | 字符串 | 文章描述或摘要内容。 |
| url | 字符串 | 文章的直接链接地址。 |
| urlToImage | 字符串 | 文章相关图片的URL。 |
| publishedAt | 字符串 | 文章发布的日期和时间,格式为UTC(+000)时间。 |
| content | 字符串 | 文章的原始内容(如有),内容会被截断至200个字符。 |
1const API_KEY = '{{API_KEY}}'; 2 3const endpointUrl = new URL('https://newsapi.org/v2/everything'); 4 5const queryParameters = new URLSearchParams({ 6 apiKey: API_KEY, 7 q: 'VR Headsets', 8 from: yesterday, 9 to: yesterday, 10 pageSize: 5, 11 page: 1, 12 sortBy: 'publishedAt' 13}); 14 15const headerParameters = { 16 contentType: "application/json", 17}; 18 19const options = { 20 method: 'GET', 21 headers: headerParameters 22}; 23 24async function fetchArticles() { 25 try { 26 endpointUrl.search = queryParameters; 27 const response = await fetch(endpointUrl, options); 28 printResponse(response); 29 } 30 catch (error) { 31 printError(error); 32 } 33} 34 35fetchArticles();
1const API_KEY = '{{API_KEY}}'; 2 3const endpointUrl = new URL('https://newsapi.org/v2/everything'); 4 5const queryParameters = new URLSearchParams({ 6 apiKey: API_KEY, 7 q: 'Web 3.0', 8 excludeDomains: 'bbc.co.uk', 9 pageSize: 10, 10 page: 1, 11 sortBy: 'popularity', 12 language: 'en', 13}); 14 15const headerParameters = { 16 contentType: "application/json", 17}; 18 19const options = { 20 method: 'GET', 21 headers: headerParameters 22}; 23 24async function fetchArticles() { 25 try { 26 endpointUrl.search = queryParameters; 27 const response = await fetch(endpointUrl, options); 28 printResponse(response); 29 } 30 catch (error) { 31 printError(error); 32 } 33} 34 35fetchArticles();