-3

我正在尝试通过使用 raw_html = urlopen(url).read() 来使用 python 提取特定的 URL。

当我检查“raw_htm”时,我发现预期的 HTML/文本已被一些文本替换,这些文本基本上告诉我我无法抓取该网站。

但是,当我使用 UNIX/python 中的“curl -O”提取相同的 url 时,页面下载得很好。

差异的原因是什么,我应该在 python 中使用什么方法,以便我可以像在 unix 中使用 curl 命令一样获取 html?

提前感谢您的任何想法!

4

1 回答 1

2

当 HTTP 客户端发出请求时,它会向服务器标识自己。在这种情况下,服务器会检查客户端是否是机器人,如果是,它会拒绝访问(尽管显然它无法检测到 Curl)。

您可以通过将用户代理字符串设置为欺骗浏览器来解决此问题。请参阅此问题以了解如何使用urllib. 但是,如果服务器的所有者不希望您抓取它,并且它检测到您无论如何都在这样做(因为您请求页面的速度太高),您可能会发现自己被阻止访问该站点,因此联系所有者可能是比欺骗更好的主意。

于 2013-02-12T11:25:02.650 回答