selenium实现csdn登录,目前已失效,仅供参考操作
selenium实现csdn登录,目前已失效,仅供参考操作:
import urllib import urllib.request import http.cookiejar from urllib import parse #fiddler抓取登录的POST,用户名和密码为明文,后面的参数key到网页检查里找相对应的value,生成一个POSTData #建立一个cookie管理器,用这个打开自带cookie cookie = http.cookiejar.CookieJar() # 声明一个CookieJar对象实例来保存cookie handler = urllib.request.HTTPCookieProcessor(cookie) # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 opener = urllib.request.build_opener(handler) # 通过handler来构建opener headdata=opener.open("https://passport.csdn.net/").read().decode("utf=8") pat1=re.compile(r"name=\"lt\" value=\"(.*?)\"") #fiddler抓包后 post 用户名和密码后面的第一个参数 pat2=re.compile(r"name=\"execution\" value=\"(.*?)\"") #fiddler抓包后 post 用户名和密码后面的第二个参数 b1=pat1.findall(headdata) b2=pat2.findall(headdata) #挖掘两个加密信息 postData={ #fiddler抓包后,post 的五个参数 "username":"用户名", "password":"密码", "lt":b1[0], "execution":b2[0], "_eventId":"submit"} postData=parse.urlencode(postData) #编码 opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'), ('Referer', 'http://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn') ] response=opener.open("http://passport.csdn.net/",data=postData) print(response.read()) responsex=opener.open("http://my.csdn.net/my/mycsdn") file=open("csdnff.html","w") file.write(responsex.read()) file.close() print(responsex.read().find("请您先登录")!=-1)