我想用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”
我不知道你在用什么操作系统,但如果你使用类似httpscoop(mac)或fiddler(pc)或wireshark之类的东西,你应该能够观察流量并看到发生了什么。可能是网站做了一个重定向(你的浏览器正在跟踪),或者还有其他一些后续活动。在
启动一个HTTP嗅探器,使用web浏览器发出请求并监视流量。完成后,用python脚本尝试一下,看看是否发出了请求,以及HTTP流量有什么不同。这将有助于确定断开的位置。在
httpget在客户端不需要任何特定的代码或操作:它只是基URL(http://服务器/)+路径+可选查询。在
如果URL是正确的,那么上面的代码应该可以工作。以下是您可以尝试的一些建议:
网址真的正确吗?你可以使用任何一个来自网络的完整的或类似的请求流的HTTP地址。
也许这个网站需要你先登录。如果是这样,请确保正确设置cookies。
一些网站需要保护自己免受“深层次链接”的影响。添加浏览器用于请求的referer头。
服务器的日志文件是一个很好的信息源,可以在您有权访问它时解决此类问题。
相关问题 更多 >
编程相关推荐