Use python to log on to the Baidu Post Bar instance.
The code is as follows:
#-*-Coding: UTF-8 -*-
# Python3.3.3
Import sys, time, re, urllib. parse, urllib. request, http. cookiejar, random, math, OS. path, hashlib, json, binascii, threading
"" Cookie """
Cookie = http. cookiejar. LWPCookieJar ()
# Cookie. load ('F:/cookie.txt ', True, True)
Chandle = urllib. request. HTTPCookieProcessor (cookie)
"Getting data """
Def getData (url ):
R = urllib. request. Request (url)
Opener = urllib. request. build_opener (chandle)
U = opener. open (r)
# Chandle. cookiejar. save ('F:/cookie.txt ', True, True)
Data = u. read ()
Try:
Data = data. decode ('utf-8 ')
Except t:
Data = data. decode ('gbk', 'ignore ')
Return data
Def postData (url, data ):
Data = urllib. parse. urlencode (data); data = bytes (data, 'utf-8 ')
R = urllib. request. Request (url, data)
Opener = urllib. request. build_opener (chandle)
U = opener. open (r)
# Chandle. cookiejar. save ('F:/cookie.txt ', True, True)
Data = u. read ()
Try:
Data = data. decode ('utf-8 ')
Except t:
Data = data. decode ('gbk', 'ignore ')
Return data
Def login (name, pwd ):
Url = 'http: // www.baidu.com'
GetData (url)
Par = {
"Apiver": 'v3 ',
"Callback": 'bd _ cbs _ oug2fy ',
"Class": 'login ',
"Logintype": 'dialoglogin ',
"Tpl": 'TB ',
"Tt": '000000'
}
Url = 'https: // passport.baidu.com/v2/api /? Getapi & % s' % urllib. parse. urlencode (par)
Token = re. findall ('"token ":"(.*?) "', GetData (url) [0]
Par. update ({"isphone": 'false', "username": name, "token": token })
Url = 'https: // passport.baidu.com/v2/api /? Logincheck &? % S' % urllib. parse. urlencode (par)
Data = {
"Charset": 'gbk ',
"Mem_pass": 'on ',
"Password": pwd,
"Ppui_logintime": '20140901 ',
"Quick_user": '0 ',
"Safeflg": '0 ',
"Splogin": 'rate ',
"U": 'http: // tieba.baidu.com /'
}
Url = 'https: // passport.baidu.com/v2/api /? Login'
Par. update (data)
Bdu = re. findall ('hao123param = (.*?) & ', PostData (url, par) [0]
Par = {
"Bdu": bdu,
"T": '000000'
}
Url = 'http: // user.hao123.com/static/crossdomain.php? % S' % urllib. parse. urlencode (par)
GetData (url)
Print (json. loads (getData ('http: // tieba.baidu.com/f/user/json_userinfo ')))
"------ Enter the account password ------"""
Login ('account', 'password ')
The code is as follows:
#-*-Coding: UTF-8 -*-
# Python3.3.3
Import sys, time, re, urllib. parse, urllib. request, http. cookiejar, random, math, OS. path, hashlib, json, binascii, threading
"" Cookie """
Cookie = http. cookiejar. LWPCookieJar ()
# Cookie. load ('F:/cookie.txt ', True, True)
Chandle = urllib. request. HTTPCookieProcessor (cookie)
"Getting data """
Def getData (url ):
R = urllib. request. Request (url)
Opener = urllib. request. build_opener (chandle)
U = opener. open (r)
# Chandle. cookiejar. save ('F:/cookie.txt ', True, True)
Data = u. read ()
Try:
Data = data. decode ('utf-8 ')
Except t:
Data = data. decode ('gbk', 'ignore ')
Return data
Def postData (url, data ):
Data = urllib. parse. urlencode (data); data = bytes (data, 'utf-8 ')
R = urllib. request. Request (url, data)
Opener = urllib. request. build_opener (chandle)
U = opener. open (r)
# Chandle. cookiejar. save ('F:/cookie.txt ', True, True)
Data = u. read ()
Try:
Data = data. decode ('utf-8 ')
Except t:
Data = data. decode ('gbk', 'ignore ')
Return data
Def login (name, pwd ):
Url = 'http: // www.baidu.com'
GetData (url)
Par = {
"Apiver": 'v3 ',
"Callback": 'bd _ cbs _ oug2fy ',
"Class": 'login ',
"Logintype": 'dialoglogin ',
"Tpl": 'TB ',
"Tt": '000000'
}
Url = 'https: // passport.baidu.com/v2/api /? Getapi & % s' % urllib. parse. urlencode (par)
Token = re. findall ('"token ":"(.*?) "', GetData (url) [0]
Par. update ({"isphone": 'false', "username": name, "token": token })
Url = 'https: // passport.baidu.com/v2/api /? Logincheck &? % S' % urllib. parse. urlencode (par)
Data = {
"Charset": 'gbk ',
"Mem_pass": 'on ',
"Password": pwd,
"Ppui_logintime": '20140901 ',
"Quick_user": '0 ',
"Safeflg": '0 ',
"Splogin": 'rate ',
"U": 'http: // tieba.baidu.com /'
}
Url = 'https: // passport.baidu.com/v2/api /? Login'
Par. update (data)
Bdu = re. findall ('hao123param = (.*?) & ', PostData (url, par) [0]
Par = {
"Bdu": bdu,
"T": '000000'
}
Url = 'http: // user.hao123.com/static/crossdomain.php? % S' % urllib. parse. urlencode (par)
GetData (url)
Print (json. loads (getData ('http: // tieba.baidu.com/f/user/json_userinfo ')))
"------ Enter the account password ------"""
Login ('account', 'password ')