r - 自定义搜索引擎的“term1 OR term2”查询的正确语法是什么
问题描述
情况:
我正在使用谷歌自定义搜索引擎、谷歌云平台和 R 来搜索给定术语出现的网页数量。由于给定术语存在同义词,我试图获取给定的网页数量术语或其同义词出现在(“或”在此处以其非排他性含义使用)。
问题:
我试图以几种不同的方式来制定查询,所有这些都产生了不连贯的结果(即“term1”的网页数量>“term1”或“term2”的网页数量)。
这是我尝试过的配方(这里 term1 = Alsophis antiguae,term2 = Alsophis leucomelas):
URL_1 <- paste0(URL, key, "&cx=", cx, "&q=\'",
URLencode("Alsophis antiguae | Alsophis leucomelas") , "\'")
URL_2 <- paste0(URL, key, "&cx=", cx, "&q=\'",
URLencode("Alsophis antiguae OR Alsophis leucomelas") , "\'")
URL_3 <- paste0(URL, key, "&cx=", cx, "&q=\'",
"Alsophis%20antiguae", "OR",
"Alsophis%20leucomelas", "\'")
URL_4 <- paste0(URL, key, "&cx=", cx, "&q=\'",
"Alsophis%20antiguae", "%20OR%20",
"Alsophis%20leucomelas", "\'")
URL_5 <- paste0(URL, key, "&cx=", cx, "&q=\'",
"Alsophis%20antiguae", "\'", "OR",
"\'", "Alsophis%20leucomelas", "\'")
生成 URL 后,我运行以下行:
js <- fromJSON(base::url(URL_1))
问题:
搜索“term1”或“term2”的正确语法是什么。您能否提供一个 URL 的查询块作为示例(例如“&q='Alsophis%20antiguae'”)?
提前谢谢了
解决方案
如果有人感兴趣,正确的语法是\"term1\"+OR\"term2\"
. 这种语法似乎也适用于 AND。
双引号可以正常工作,而单引号似乎会产生错误的结果。所以单引号应该用于分隔字符串,而不是在查询中。
以下代码产生一个工作查询
term1 <- "aaaa"
term2 <- "bbbb"
dummy.query <- paste0("\"", term1, "\"",
"+OR", # works with "+AND"
"\"", term2, "\"")
然后,如果key
是您的 API 密钥和cx
自定义 google 搜索引擎的 ID,则完整的工作 URL 是:
URL = paste0("https://www.googleapis.com/customsearch/v1?key=", key,
"&cx=", cx,
"&q=", dummy.query)
推荐阅读
- python - 如何将嵌套的 json 转换为数据框?
- vue.js - 我应该在 vue.js 中转储 data 属性中的所有变量吗
- python - 在字符串中查找单词
- android - 如何从视图模型中获取 val 中的编辑文本文本
- angular - npm -g @angular/cli (11.2) 错误
- php - 如何让 phpMyAdmin 显示旧数据
- firebase-authentication - 带有firebase auth的剃须刀页面-在哪里放置这个令牌?:)
- c - AVR ATmega328p 和 MCP3201 问题
- lisp - 输入数字的平均值
- python-3.x - RFID (MFRC522) 扫描仪等待读取或写入 Raspberry PI