Python3自动登录web

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.综合版

https://github.com/CharlotteLock/Python3-reptile

转载于:https://my.oschina.net/charlock/blog/874493

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值