如何在不使用浏览器的情况下使用Python打开URL?

2024-06-30 15:08:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python代码打开一个URL,但我不想使用“webbrowser”模块。我已经试过了,而且效果很好(它在我的默认浏览器中打开了URL,这是我不想要的)。所以我尝试使用urllib(urlopen)和mechanize。他们两个运行良好,我的程序,但他们没有真正发送我的请求到网站!在

以下是我的部分代码:

finalURL="http://www.locationary.com/access/proxy.jsp?ACTION_TOKEN=proxy_jsp$JspView$SaveAction&inPlaceID=" + str(newPID) + "&xxx_c_1_f_987=" + str(ZA[z])

print finalURL

print ""

br.open(finalURL)

page = urllib2.urlopen(finalURL).read()

当我进入现场时,locationary.com网站,它没有显示任何更改!当我使用“webbrowser”时,它确实在我提交了我的URL之后显示了网站上的变化。在不打开浏览器的情况下,我怎么能像webbrowser那样做呢?在

我觉得网站想要一个“GET”


Tags: 模块代码comurl网站浏览器urlopenproxy
2条回答

我不知道你在用什么操作系统,但如果你使用类似httpscoop(mac)或fiddler(pc)或wireshark之类的东西,你应该能够观察流量并看到发生了什么。可能是网站做了一个重定向(你的浏览器正在跟踪),或者还有其他一些后续活动。在

启动一个HTTP嗅探器,使用web浏览器发出请求并监视流量。完成后,用python脚本尝试一下,看看是否发出了请求,以及HTTP流量有什么不同。这将有助于确定断开的位置。在

httpget在客户端不需要任何特定的代码或操作:它只是基URL(http://服务器/)+路径+可选查询。在

如果URL是正确的,那么上面的代码应该可以工作。以下是您可以尝试的一些建议:

  1. 网址真的正确吗?你可以使用任何一个来自网络的完整的或类似的请求流的HTTP地址。

  2. 也许这个网站需要你先登录。如果是这样,请确保正确设置cookies。

  3. 一些网站需要保护自己免受“深层次链接”的影响。添加浏览器用于请求的referer头。

  4. 服务器的日志文件是一个很好的信息源,可以在您有权访问它时解决此类问题。

相关问题 更多 >