1. 自动验证登录人人网
# 在linux python3上测试,注释部分为python2
import sys
import re
#import urllib2 # 分裂
import urllib.request
import urllib.parse
import urllib.error
import urllib
import requests
#import cookielib # 改名
import http.cookiejar
from imp import reload
## 这段代码是用于解决中文报错的问题,测试不需要解决
reload(sys)
#sys.setdefaultencoding("utf8")
#####################################################
# 登录人人,url on linux, 在windows上不一样路径
loginurl = 'http://www.renren.com/PLogin.do'
logindomain = 'renren.com'
class Login(object):
def __init__(self):
self.name = ''
self.passwprd = ''
self.domain = ''
self.cj = http.cookiejar.LWPCookieJar()
self.opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(self.cj))
urllib.request.install_opener(self.opener)
def setLoginInfo(self, username, password, domain):
'''设置用户登录信息'''
self.name = username
self.pwd = password
self.domain = domain
def login(self):
'''登录网站'''
loginparams = {'domain': self.domain, 'email': self.name, 'password': self.pwd}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'}
req = urllib.request.Request(loginurl, urllib.parse.urlencode(loginparams).encode(),headers=headers) # urlencode未,补充encode解决
response = urllib.request.urlopen(req)
self.operate = self.opener.open(req)
thePage = response.read().decode('utf-8')
print('....ok')
print(thePage) # 输出登录后的页面,可在登录情况下访问其他路径,待更新
if __name__ == '__main__':
userlogin = Login()
username = 'xxxxxxxxxx' # 自己已注册信息
password = 'xxxxxxx'
domain = logindomain
userlogin.setLoginInfo(username, password, domain)
userlogin.login()
# test: auto login renren is successful
2.跳过验证登录斗鱼
从已登录浏览器获取cookie
#! /usr/bin/env python
# coding:utf-8
import sys
import re
import urllib.request
import urllib.parse
import urllib.error
import urllib
import requests
import http.cookiejar
from imp import reload
# 登录斗鱼,url on linux
loginurl = 'http://www.douyu.com'
class Login(object):
def __init__(self):
self.cookie = 'PHPSESSID=ivfa1s4107t0alfhjam0uqe782; acf_auth=a9fcuuCP9SBb3BrrqQ9A1BhvULFXHuXErwIEBz3%2B1Z03nHEOQpTTrXbsAvOhVXLr6VVfbDiE3AidF2dhM%2BZF7kiC0Gavq7POQOD9%2F989RjcikKmMVkX1%2FTm2oM6Y; wan_auth37wan=b271a80d8a79PYq8jy%2B0tpeQfiWvzK%2FPUwRufQIbdWyMKvb3Lq9ZryTqYBmvg2skD8E75D013bEwmzvllveOl9gutaKVNLqxf%2FA6j5%2FVTnN99JxE; acf_uid=3065097; acf_username=auto_wvchV41AHL; acf_nickname=QQ1126671091; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favatar%2F003%2F06%2F50%2F97_avatar_; acf_ct=0; acf_ltkid=46846941; acf_biz=1; acf_stk=182fd8243b91e685; acf_devid=5eeb6c7e532f114b052d38806b085993; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1491506694,1492008230; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1492008306; _dys_lastPageCode=page_live,page_home; _dys_refer_action_code=click_leftnavi_rank'
def login(self):
'''登录网站'''
#loginparams = {'domain': self.domain, 'email': self.name, 'password': self.pwd}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36',
'cookie': self.cookie
}
req = urllib.request.Request(loginurl,headers=headers)
response = urllib.request.urlopen(req)
thePage = response.read().decode('utf-8')
print('....ok')
print(thePage)
if __name__ == '__main__':
userlogin = Login()
userlogin.login()
# test: auto login douyu by cookie
3.综合版