Python:Mechanize的'urlopen'和'open'

时间:2014-05-23 07:01:07

标签: python mechanize

例如,有两个网页需要按顺序打开:

mechanize文档显示,如果第二个需要在第一个中设置的cookie,则可以逐个打开它们。如下:

import mechanize
import urllib

request = mechanize.Request("http://www.example.com/")
response = mechanize.urlopen(request)

# let's say this next request requires a cookie that was set in response

request2 = mechanize.Request("http://www.example.com/spam.html/")
response2 = mechanize.urlopen(request2)

另一方面,忽略下面的'params'部分,它的功能是否相同,特别是对于cookie部分?这两组代码有什么区别?

br = mechanize.Browser()
postDict = {'username' : 'name',
            'password' : 'pass',}

params = urllib.urlencode(postDict)
response = br.open(‘www.example.com’, params)
response1 = br.open(‘www.example.com/spam.html’)

感谢。

。 。 。 。

我在这个问题背后的问题是,通过使用第二组代码,它设法登录“http://www.example.com/”。但是当试图打开“www.example.com/spam.html”时,它会返回第一页的内容,这是不想要的。

通过使用真正的Brower,例如Internet Explorer,我可以在一个标签中登录“http://www.example.com/”,并在同一浏览器中的另一个标签中成功打开“www.example.com/spam.html”。没问题。

为什么代码没有返回第二页?感谢。

0 个答案:

没有答案