Curl 和 Google 图片

Curl 和 Google 图片

我尝试从终端使用curl抓取Google图像搜索结果页面,但它没有给我一个可以在Firefox中使用“查看页面源”查看的实际html源。我尝试了“curl [url]”和“curl -L [url]”。两者都给了我一个简短的 html 源代码,其中包括“您的客户端无权从该服务器获取 URL”。如何通过 shell 脚本获取 Firefox 中可以获取的 html 源代码?

我在终端中得到的简短 html 的一部分说了这一点。

请参阅发布在以下位置的 Google 服务条款: http://www.google.com/terms_of_service.html

如果您认为您错误地收到了此回复,请报告您的问题。但是,请务必查看我们的服务条款(http://www.google.com/terms_of_service.html)。在您的电子邮件中,请向我们发送全部的代码如下所示。

答案1

错误消息包含损坏的链接,但是Google 当前的服务条款说:

请勿滥用我们的服务,例如,请勿干扰我们的服务或尝试使用某种方法访问它们除了我们提供的界面和说明之外

(强调我的)

他们出于某种原因拒绝了您的请求。他们可能从您的 IP 地址发现了可疑活动,但最有可能的是他们发现您正在使用curl而不是常规浏览器(您会在其中看到广告)。

您可以curl通过提供通用的用户代理(例如,来自http://www.browser-info.net/useragents) 选项-A,但这仍然违反了服务条款。

答案2

我认为这很可能是 cookie 的问题(或缺少 cookie)。您可能想尝试使用curl 的-c [file]cookie jar 选项,将cookie 保存到文件中。您可能需要编写一个curl请求来表示“google.com”以提交图像搜索并将所有cookie保存到file,然后使用第二个查询来抓取为实际搜索提供的Web URL并使用以下命令加载保存的cookie选项-b [file]。可能它只需要会话 ID cookie。

您可以在下面的屏幕截图中看到 Google 分配了许多 cookie 变量。

谷歌图像的 Cookie 示例

相关内容