谷歌使用curl建议查询(Google suggest query using curl)

2019-10-20 23:50发布

当我使用不同的浏览器做的请求,它给我正确的XML响应。

http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=test&gl=US

现在,我使用curl命令要求上述网址,但它给我400错误:

curl http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=test&gl=US

此外,我已通过用户代理,但它也给了我同样的错误。

curl -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"  http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=test&gl=US

请指导如果我丢失出头。

错误

400.这是一个错误。

您的客户端发出格式错误或非法的请求。 我们知道的就这些。

当我尝试下面的命令:

curl -v -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0" -H "Accept: application/xml" -H "Content-Type: application/xml" https://suggestqueries.google.com/complete/search?hl=en&q=test&gl=US&format=rich

然后获得回应:

  • 关于以()连接到suggestqueries.google.com端口443(#0)
  • 尝试74.125.200.138 ...连接
  • 设置成功证书验证地点:
  • 凭证档案错误:无CApath:在/ etc / SSL /证书
  • 在SSLv3,TLS握手,客户问候(1):
  • 在SSLv3,TLS握手,服务器Hello(2):
  • 在SSLv3,TLS握手,CERT(11):
  • 在SSLv3,TLS握手,服务器密钥交换(12):
  • 在SSLv3,TLS握手,服务器完成(14):
  • 在SSLv3,TLS握手,客户端密钥交换(16):
  • 在SSLv3,TLS密码变化,客户机问候(1):
  • 的SSLv3,TLS握手,成品(20):
  • 在SSLv3,TLS密码变化,客户机问候(1):
  • 的SSLv3,TLS握手,成品(20):
  • 使用ECDHE-ECDSA-AES128-SHA SSL连接
  • 服务器证书:
  • 受试者:C = US; ST =加利福尼亚; L =山景; O =谷歌公司; CN = *。google.com
  • 开始日期:2014年8月27日十一时47分20秒GMT
  • 到期日:2014年11月25日00:00:00 GMT
  • 的SubjectAltName:suggestqueries.google.com匹配
  • 发行人:C = US; O =谷歌公司; CN =谷歌的互联网机构G2
  • SSL证书验证确定。

  • GET /完整/搜索?HL = EN HTTP / 1.1

  • 用户代理:Mozilla的/ 5.0(X11; Ubuntu的版本; Linux x86_64的; RV:27.0)壁虎/ 20100101火狐/ 27.0
  • 主持人:suggestqueries.google.com
  • 接受:应用/ XML
  • 内容类型:应用程序/ XML

  • HTTP / 1.1 200 OK

  • 内容类型:text / html的; 字符集= UTF-8
  • 设置Cookie:PREF = ID = 221163cf51f1fd63:FF = 0:TM = 1410889133:LM = 1410889133:S = 8a7TwxXZ4a-1bM3l; 期满=星期四,15月-2016 17时38分53秒GMT; 路径= /; 域= .google.com
  • 设置Cookie:NID = 67 = UiY78HgmkOLxvy0S4_EfmD7vRX0gInDI6FhWWuj2cP9w25NfV6DdzVq7XooHlo5QNH1NteyjxWqyDVm0Dp9OD8Y7ABx-GEOY-wYEHDEciDmIxFhCFxixOXO1RJIn5UL_; 期满=星期三,18-MAR-2015 17时38分53秒GMT; 路径= /; 域= .google.com; 仅Http
  • P3P:CP =“这不是一个P3P政策见! http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657获取更多信息。”
  • 日期:星期二,2014年9月16日17时38分53秒GMT
  • 服务器:GWS
  • 内容长度:0
  • X-XSS-保护:1; 模式=块
  • X框选项:SAMEORIGIN
  • 到期日:星期二,2014年9月16日17时38分53秒GMT
  • 缓存控制:私人
  • 复用协议:443:QUIC,P = 0.002

  • 连接#0主办suggestqueries.google.com保持不变

  • 关闭连接#0
  • 在SSLv3,TLS警告,客户机问候(1):

  • 完成卷曲-v -A “的Mozilla / 5.0(X11; Ubuntu的版本; Linux x86_64的; RV:27.0)壁虎/ 20100101火狐/ 27.0” -H “接受:应用/ XML” -H “内容类型:应用/ xml”的HTTPS :?//suggestqueries.google.com/complete/search HL = EN

  • DONE Q =测试
  • 完成GL = US

Answer 1:

获取Wireshark的并检查包。 这可能是无用的,因为我可以看到,卷曲使用SSL。 然而,你可以检查你的浏览器中使用SSL了。 如果你没有得到完整的包,您可以比较卷曲输出,并找出哪些领域造成的错误(从谷歌确认响应过,他们不仅可以通过400反应而改变)。



Answer 2:

你必须把在引号的网址,请尝试:

curl 'http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=test&gl=US'

在大多数壳经过特殊处理的。

正如你可以在你张贴的错误看到,网址是前第一切割:

Done curl -v -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) 
Gecko/20100101 Firefox/27.0" -H "Accept: application/xml" -H "Content-Type: 
application/xml" https://suggestqueries.google.com/complete/search?hl=en
                                                                       ^
                                                                       |


文章来源: Google suggest query using curl