我正在尝试通过使用 raw_html = urlopen(url).read() 来使用 python 提取特定的 URL。
当我检查“raw_htm”时,我发现预期的 HTML/文本已被一些文本替换,这些文本基本上告诉我我无法抓取该网站。
但是,当我使用 UNIX/python 中的“curl -O”提取相同的 url 时,页面下载得很好。
差异的原因是什么,我应该在 python 中使用什么方法,以便我可以像在 unix 中使用 curl 命令一样获取 html?
提前感谢您的任何想法!
我正在尝试通过使用 raw_html = urlopen(url).read() 来使用 python 提取特定的 URL。
当我检查“raw_htm”时,我发现预期的 HTML/文本已被一些文本替换,这些文本基本上告诉我我无法抓取该网站。
但是,当我使用 UNIX/python 中的“curl -O”提取相同的 url 时,页面下载得很好。
差异的原因是什么,我应该在 python 中使用什么方法,以便我可以像在 unix 中使用 curl 命令一样获取 html?
提前感谢您的任何想法!
当 HTTP 客户端发出请求时,它会向服务器标识自己。在这种情况下,服务器会检查客户端是否是机器人,如果是,它会拒绝访问(尽管显然它无法检测到 Curl)。
您可以通过将用户代理字符串设置为欺骗浏览器来解决此问题。请参阅此问题以了解如何使用urllib. 但是,如果服务器的所有者不希望您抓取它,并且它检测到您无论如何都在这样做(因为您请求页面的速度太高),您可能会发现自己被阻止访问该站点,因此联系所有者可能是比欺骗更好的主意。