有没有办法通过JSON获得谷歌的描述?

wtlkbnrh  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(112)

我得到了下面的代码,这是基于谷歌API调用。它目前返回的是标题+网址。我试图得到的是一个linkedin页面的描述,并分裂它的信息';”“有命令吗?
我看到有获取URL和TITLE,但我无法在文档中找到一种方法来刮描述:

function getSize(companyName) {

var key="AIzaSyDoZfj4VJPgyYvPbUg6fbObcueAkGxyR-U"
let search = "site:linkedin.com/company "+" "+companyName+" company size"
let searchEngineId = "a480fef134d0c4c6f"

// Call Google Custom Search API
var options = {
  'method' : 'get',
  'contentType': 'application/json',
};
response = UrlFetchApp.fetch("https://www.googleapis.com/customsearch/v1?key="+key+"&q="+search+"&cx="+searchEngineId, options);

// Parse linkedin URL and Name
//let url = JSON.parse(response).items[0].formattedUrl
let title = JSON.parse(response).items[0].title.split("-")[1]

// display the results in 2 columns
var results = new Array(1);
let info = new Array(2);
//info[0]=url
info[1]=description
results=info[1]

return results
2nc8po8w

2nc8po8w1#

使用您的参数检查自定义搜索的输出,公司规模包含在items[0].snippet下:

"items":[
   {
      "kind":"customsearch#result",
      "title":"Twitter | LinkedIn",
      "link":"https://www.linkedin.com/company/twitter",
      "snippet":"Website: https://careers.twitter.com. Industries: Software Development. Company size: 5,001-10,000 employees. Headquarters: San Francisco, CA."
      //...etc

正如您所看到的,它只是纯文本,没有在任何元标记下,所以您最好的选择是使用正则表达式来提取数字,如评论中所建议的。

response = UrlFetchApp.fetch("https://www.googleapis.com/customsearch/v1?key="+key+"&q="+search+"&cx="+searchEngineId, options);

var snippet = JSON.parse(response).items[0].snippet
var regex = new RegExp(/(?<=Company size: ).*?(?= employees)/);
var size = regex.exec(snippet)[0]

size的值是5,001-10,000,从上面的代码片段中提取出来的。正则表达式/(?<=Company size: ).*?(?= employees)/只查找“公司规模:“和“雇员”之间的值。
如果你想提取不在自己标签中的任何内容,你可能需要这样做,小心处理公司规模不在代码片段中的情况。你也可以在JSON Formatter之类的代码中检查完整的响应,以更好地了解响应的结构。

参考:

相关问题