我已经看到很多关于这个主题的问题,我发现Google一直在更新其搜索引擎API的工作方式。
此链接> get the first 10 google results using googleapi完全显示我需要的东西,但事情是我不知道是否可以再这样做了。
我需要这个到我的学期论文,但通过阅读谷歌文档我找不到办法做到这一点。 我已经完成了“入门”的工作,我得到的只是一个使用自定义搜索引擎(CSE)的私人搜索引擎。
答案 0 :(得分:0)
或者,您可以使用Python,Selenium和PhantomJS或其他浏览器浏览Google的搜索结果并获取内容。我个人没有这样做,也不知道那里是否有挑战。
我认为最好的方法是使用他们的搜索API。请尝试你指出的那个。如果它不起作用,请寻找新的API。
答案 1 :(得分:0)
我在尝试自己解决此问题时遇到了这个问题,并找到了针对此问题的更新解决方案。
基本上,我在Google Custom Search使用了本指南来生成自己的api密钥和搜索引擎,然后使用python请求来检索json结果。
def search(query):
api_key = 'MYAPIKEY'
search_engine_id = 'MYENGINEID'
url = "https://www.googleapis.com/customsearch/v1/siterestrict?key=%s&cx=%s&q=%s" % (api_key, search_engine_id, query)
result = requests.Session().get(url)
json = simplejson.loads(result.content)
return json
答案 2 :(得分:0)
我通过链接回答了您附加的问题。
这是该答案的 link 和 full code example。我将复制代码以加快访问速度。
使用返回 JSON 的自定义脚本的第一种方式:
from bs4 import BeautifulSoup
import requests
import json
headers = {
'User-agent':
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}
html = requests.get('https://www.google.com/search?q=java&oq=java',
headers=headers).text
soup = BeautifulSoup(html, 'lxml')
summary = []
for container in soup.findAll('div', class_='tF2Cxc'):
heading = container.find('h3', class_='LC20lb DKV0Md').text
article_summary = container.find('span', class_='aCOpRe').text
link = container.find('a')['href']
summary.append({
'Heading': heading,
'Article Summary': article_summary,
'Link': link,
})
print(json.dumps(summary, indent=2, ensure_ascii=False))
使用来自 SerpApi 的 Google Search Engine Results API:
import os
from serpapi import GoogleSearch
params = {
"engine": "google",
"q": "java",
"api_key": os.getenv("API_KEY"),
}
search = GoogleSearch(params)
results = search.get_dict()
for result in results["organic_results"]:
print(f"Title: {result['title']}\nLink: {result['link']}\n")
<块引用>
免责声明,我为 SerpApi 工作。