我使用Python 2.7.1访问在线网站。我需要加载一个URL,然后向该URL提交一个POST请求,导致该网站重定向到一个新的URL。然后我想将一些数据发布到新的URL。这很容易做到,除了有问题的网站不允许用户使用浏览器导航。 (例如,您不能只输入新页面的URL或按后退按钮,您必须通过单击网站上的“下一步”按钮到达那里)。因此,当我尝试这个时:
import urllib, urllib2, cookielib
url = "http://www.example.com/"
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
form_data_login = "POSTDATA"
form_data_try = "POSTDATA2"
resp = opener.open(url, form_data_login)
resp2 = opener.open(resp.geturl(), form_data_try)
print resp2.read()
我在resp2的网站上收到“请勿使用浏览器上的后退按钮”消息。有没有办法将数据发布到resp给我的网站?提前谢谢!
编辑:我会调查一下Mechanize,谢谢你的指针。但是现在,有没有办法只用Python做到这一点?答案 0 :(得分:0)
你看过mechanize了吗?我相信它具有您需要的功能。
答案 1 :(得分:0)
您可能通过“下一步”按钮发布内容来访问该页面。您必须查看按下该按钮时发送的POST参数,并将所有这些帖子参数添加到您的通话中。
网站可能虽然设置的方式是它只接受一个特定的POST参数,以确保你必须通过网站本身(例如通过散列一个时间戳)某种方式或类似的东西)但它不太可能。