代码实现网站的模拟登陆:
# -*- coding: utf-8 -*-
import urllib.request
import urllib
import http.cookiejar
import re
def makeMyOpener(head = {
'Connection':'Keep-Alive',
'Accept':'text/html,application/xhtml,*/*',
'Accept-language':'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
'User-Agent':'Molizlla/5.0(Windows NT 6.3;WOW64;Trident/7.0;rv:11.0)like Gecko',
}):
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
header = []
for key,value in head.items():
elem = (key,value)
header.append(elem)
opener.addheaders = header
return opener
opener = makeMyOpener()
uop = opener.open('http://www.zhihu.com/')
temp_data = uop.read().decode()
#print(data)
r = re.compile(r'name="_xsrf" value="(.+?)"')
value = r.findall(temp_data)
_xsrf = value[0]
url = 'http://www.zhihu.com/#signin'
id = ''
password = ''
postdict = {
'_xsrf':_xsrf,
'email':id,
'password':password,
'rememberme':'y'
}
postData = urllib.parse.urlencode(postdict).encode()
op = opener.open(url,postData)
data = op.read()
print(data)