我有一个urllib2开启器,并希望将它用于带有一些数据的POST请求.
我希望收到我正在发布的页面的内容,以及返回的页面的URL(我认为这只是一个30倍的代码;所以这些内容很棒!).
把它想象成代码:
anOpener = urllib2.build_opener(???,???)
anOpener.addheaders = [(???,???),(???,???),...,(???,???)]
# do some other stuff with the opener
data = urllib.urlencode(dictionaryWithPostValues)
pageContent = anOpener.THE_ANSWER_TO_THIS_QUESTION
pageURL = anOpener.THE_SECOND_PART_OF_THIS_QUESTION
Run Code Online (Sandbox Code Playgroud)
一旦人们意识到答案,这是一个如此愚蠢的问题.
只需使用:
open(URL,data)
Run Code Online (Sandbox Code Playgroud)
对于第一部分,和Rachel Sanders一样,
geturl()
Run Code Online (Sandbox Code Playgroud)
第二部分.
我真的无法弄清楚整个请求/开启者的工作原理如何; 我找不到任何好的文档:/
这个页面可以帮助你:
http://www.voidspace.org.uk/python/articles/urllib2.shtml#data
import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
'location' : 'Northampton',
'language' : 'Python' }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
the_url = response.geturl() # <- doc claims this gets the redirected url
Run Code Online (Sandbox Code Playgroud)
看起来你也可以使用response.info()直接获取Location头而不是使用.geturl().
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
11486 次 |
| 最近记录: |