Python 请求转换为 urllib2
Python requests convert to urlib2
我可以使用 requests
软件包登录并正确获取源页面。由于某种原因我只能使用标准库。不幸的是 urlib2
没有得到与 request
相同的结果,我是不是错过了什么?
请求
def login(userName, passWord):
url = "https://logindict.youdao.com/login/acc/login"
payload = "username=" + userName + "&password=" + passWord + \
"&savelogin=1&app=web&tp=urstoken&cf=7&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dnull&product=DICT&type=1&um=true"
headers = {
'cache-control': "no-cache",
'content-type': "application/x-www-form-urlencoded"
}
s = requests.session()
response = s.post(url, data=payload, headers=headers)
print response.text
urllib2
url = "https://logindict.youdao.com/login/acc/login"
data = 'app=web&tp=urstoken&cf=3&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dlogin_from_dict2.index&product=DICT&type=1&um=true&username=xxx&password=xxx'
headers = {
'cache-control': "no-cache",
"Content-Type": "application/x-www-form-urlencoded"
}
req = urllib2.Request(url, data=value, headers=headers)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
因为您没有 cookie
,所以 webserver
会 write/check,而 request
会自动执行。
将 urllib2
与 cookielib
一起使用,如下所示:
import urllib2
import cookielib
def login(userName, passWord):
url = "https://logindict.youdao.com/login/acc/login"
payload = "username=" + userName + "&password=" + passWord + \
"&savelogin=1&app=web&tp=urstoken&cf=7&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dnull&product=DICT&type=1&um=true"
headers = {
'cache-control': "no-cache",
'content-type': "application/x-www-form-urlencoded"
}
url = url + '?' + payload
req = urllib2.Request(url, headers=headers)
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
login('xxxxxx','xxxxx')
顺便说一句,您现在需要更改密码!
我可以使用 requests
软件包登录并正确获取源页面。由于某种原因我只能使用标准库。不幸的是 urlib2
没有得到与 request
相同的结果,我是不是错过了什么?
请求
def login(userName, passWord):
url = "https://logindict.youdao.com/login/acc/login"
payload = "username=" + userName + "&password=" + passWord + \
"&savelogin=1&app=web&tp=urstoken&cf=7&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dnull&product=DICT&type=1&um=true"
headers = {
'cache-control': "no-cache",
'content-type': "application/x-www-form-urlencoded"
}
s = requests.session()
response = s.post(url, data=payload, headers=headers)
print response.text
urllib2
url = "https://logindict.youdao.com/login/acc/login"
data = 'app=web&tp=urstoken&cf=3&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dlogin_from_dict2.index&product=DICT&type=1&um=true&username=xxx&password=xxx'
headers = {
'cache-control': "no-cache",
"Content-Type": "application/x-www-form-urlencoded"
}
req = urllib2.Request(url, data=value, headers=headers)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
因为您没有 cookie
,所以 webserver
会 write/check,而 request
会自动执行。
将 urllib2
与 cookielib
一起使用,如下所示:
import urllib2
import cookielib
def login(userName, passWord):
url = "https://logindict.youdao.com/login/acc/login"
payload = "username=" + userName + "&password=" + passWord + \
"&savelogin=1&app=web&tp=urstoken&cf=7&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dnull&product=DICT&type=1&um=true"
headers = {
'cache-control': "no-cache",
'content-type': "application/x-www-form-urlencoded"
}
url = url + '?' + payload
req = urllib2.Request(url, headers=headers)
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
login('xxxxxx','xxxxx')
顺便说一句,您现在需要更改密码!