python模拟登录csdn,基本和上一篇没有差别,只贴代码不解释,具体解释可以看上一贴
import lxml.html
import urllib
import urllib2
import cookielib
def parse_form(html):
tree = lxml.html.fromstring(html)
elems = tree.cssselect("form input")
post_data = {}
for elem in elems:
if elem.get('name'):
post_data[elem.get('name')] = elem.get('value')
return post_data
loginurl = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')]
html = opener.open(loginurl).read()
post_data = parse_form(html)
post_data['username'] = '*********'
post_data['password'] = '*********'
encoded_data = urllib.urlencode(post_data)
opener.open(loginurl,encoded_data)
response = opener.open('http://my.csdn.net/')
f = open('csdn.html','w')
f.write(response.read())
f.close()