有没有办法用同样的结果刮起谷歌。
和这里一样,我使用代理调用google.
但是每次由于代理(服务器的地理位置),它都会显示不同的结果,
那么,有什么方法可以用代理服务器刮除google的结果吗?
发布于 2014-09-27 13:31:25
您需要强制使用uule参数设置为全国范围的地理定位。
在这里您可以找到理论:http://moz.com/ugc/geolocation-the-ultimate-tip-to-emulate-local-search,在这里您可以找到脚本来强制模仿任何位置:https://github.com/512banque/uule-grabber。
美国的FYI uule是: w+CAIQICINVW5pdGVkIFN0YXRlcw (即查询管道工在美国的地理位置是:https://www.google.com/search?hl=en&gl=us&q=plumber&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw )
您可以通过我在网上放置的工具:http://www.usearchfrom.com创建自定义地理位置查询。
发布于 2021-04-09 07:27:29
您还可以使用Python库创建自定义params
请求。文档这里。
params = {
"q": "london", # <-- search query
"google_domain": "google.com", # <-- for Germany - google.de and so on.
"uule": "w+CAIQICIGQnJhemls", # <-- Brazil
}
代码和全例 (从谷歌知识图中抓取字幕):
from bs4 import BeautifulSoup
import requests
import lxml
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"
}
params = {
"q": "london",
"gl": "br",
"hl": "pt",
"uule": "w+CAIQICIGQnJhemls",
}
response = requests.get('https://www.google.com.br/search', params=params, headers=headers).text
soup = BeautifulSoup(response, 'lxml')
text = soup.select_one('.E75vKf span').text
print(text)
输出:
Capital da Inglaterra
或者,您可以使用来自SerApi的SerApi。它解决了captchas,旋转代理,并利用了一个完整的浏览器集群。有关更多信息,请查看游乐场。
from serpapi import GoogleSearch
import os
params = {
"engine": "google",
"q": "london",
"location": "Brazil",
"google_domain": "google.com.br",
"gl": "br",
"hl": "pt",
"api_key": os.getenv("API_KEY"),
}
search = GoogleSearch(params)
results = search.get_dict()
subtitle = results['knowledge_graph']['type']
print(subtitle)
输出:
Capital da Inglaterra
免责声明,我为SerpApi工作。
https://stackoverflow.com/questions/25152857
复制相似问题