我想编写一个脚本(最好是在python中,但其他语言不是问题),它可以解析你在谷歌搜索中输入的内容。假设我搜索'cats',那么我希望能够解析字符串cat,例如,将它附加到我的计算机上的.txt文件中。
因此,如果我的搜索是“猫”,“狗”,“奶牛”,那么我可以拥有这样的.txt文件,
猫 小狗 牛
任何人都知道任何可以解析搜索栏并返回输入字符串的API吗?或者我可以将某些对象强制转换为字符串?
编辑:我不想制作Chrome扩展或任何东西,但最好是我可以在终端中运行的python(或bash或ruby)脚本。
由于
答案 0 :(得分:1)
如果您有权访问该网址,则可以查找“& q =”来查找搜索字词。 (例如http://google.com/...&q=cats ...)。
答案 1 :(得分:1)
我可以提供2种流行的解决方案 1)Google拥有搜索引擎API https://developers.google.com/products/#google-search (它限制每天100个请求)
切割代码:
def gapi_parser(args):
query = args.text; count = args.max_sites
import config
api_key = config.api_key
cx = config.cx
#Note: This API returns up to the first 100 results only.
#https://developers.google.com/custom-search/v1/using_rest?hl=ru-RU#WorkingResults
results = []; domains = set(); errors = []; start = 1
while True:
req = 'https://www.googleapis.com/customsearch/v1?key={key}&cx={cx}&q={q}&alt=json&start={start}'.format(key=api_key, cx=cx, q=query, start=start)
if start>=100: #google API does not can do more
break
con = urllib2.urlopen(req)
if con.getcode()==200:
data = con.read()
j = json.loads(data)
start = int(j['queries']['nextPage'][0]['startIndex'])
for item in j['items']:
match = re.search('^(https?://)?\w(\w|\.|-)+', item['link'])
if match:
domain = match.group(0)
if domain not in results:
results.append(domain)
domains.update([domain])
else:
errors.append('Can`t recognize domain: %s' % item['link'])
if len(domains) >= args.max_sites:
break
print
for error in errors:
print error
return (results, domains)
2)我写了一个基于selenuim的脚本,它在真实浏览器实例中解析页面,但是这个解决方案有一些限制,例如,如果你运行机器人之类的搜索,就会出现验证码。
答案 2 :(得分:0)
您可能会考虑一些选项,包括它们的优点和缺点:
网址:
优点:正如Chris所说,访问URL并手动更改它是一个选项。为此编写脚本应该很容易,如果需要,我可以发送给我的perl脚本
缺点:我不确定你能否做到。我之前制作了一个perl脚本,但它没有用,因为谷歌表示你不能在Google界面之外使用它的服务。您可能面临同样的问题
Google的搜索API:
优点:热门选择。好文档。这应该是一个安全的选择
缺点:谷歌的限制。
研究其他搜索引擎:
优势:他们可能没有与Google相同的限制。您可能会发现一些搜索引擎可以让您玩更多游戏并拥有更多自由。
缺点:你不会得到与谷歌一样好的结果