简单获取cookies模拟登录

1,获取网站的cookies并保存到本地,利用本地cookies模拟登录

from http.cookiejar import CookieJar ,LWPCookieJar
from urllib.request import Request ,urlopen ,HTTPCookieProcessor ,build_opener
from urllib.parse import urlencode

# 模拟登陆美食杰----------------------------------
cookie = LWPCookieJar(filename='meishi123123.txt')
cookie_handler = HTTPCookieProcessor(cookie)
opener = build_opener(cookie_handler)
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'
}
# 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fwww.meishij.net%2F'
post_url = 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fi.meishi.cc%2Flogin.php%3Fac%3Dzhuce'
# urlencode对url当中的参数进行编码
# quote 对url当中的中文进行编码
# urlencode()编码的对象为字典类型
# quote 编码的对象为字符串
post_data = urlencode({
    'username':'[email protected]',
    'password':'shuai123'
}).encode('utf-8')
# 请求url 并传参 设置编码方式
response = opener.open(post_url,post_data)
cookie.save(ignore_discard=True , ignore_expires=True)#上面创建一个保存cookies的空文件,这里进行保存
# 利用登陆获取的cookie来请求美食杰首页
cookie = LWPCookieJar()
cookie.load('meishi123123.txt',ignore_expires=True ,ignore_discard=True)
opener = build_opener(HTTPCookieProcessor(cookie))
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'
}
requset =Request('https://www.meishij.net/',headers=headers)
response = opener.open(requset)
print(response.read().decode())

方式二

from http.cookiejar import CookieJar ,LWPCookieJar
from urllib.request import Request ,urlopen ,HTTPCookieProcessor ,build_opener
from urllib.parse import urlencode

def get_cookie_from_network():
    from selenium import webdriver
    url_login = 'http://login.weibo.cn/login/' 
    driver = webdriver.PhantomJS()
    driver.get(url_login)
    driver.find_element_by_xpath('//input[@type="text"]').send_keys('your_weibo_accout') # 改成你的微博账号
    driver.find_element_by_xpath('//input[@type="password"]').send_keys('your_weibo_password') # 改成你的微博密码

    driver.find_element_by_xpath('//input[@type="submit"]').click() # 点击登录

    # 获得 cookie信息
    cookie_list = driver.get_cookies()
    print cookie_list

    cookie_dict = {}
    for cookie in cookie_list:
        #写入文件
        f = open(cookie['name']+'.weibo','w')
        pickle.dump(cookie, f)
        f.close()

        if cookie.has_key('name') and cookie.has_key('value'):
            cookie_dict[cookie['name']] = cookie['value']

    return cookie_dict

实例3.模拟登录人人网

from urllib.request import requset
from http.cookiejar import CookieJar
from urllib import parse
# 1.登录
    # 1.1创建一个cookiejar对象
cookiejar=cookiejar()
    # 1.2使用cookie创建一个HTTPCookieProcess对象
handler=request.HTTPCookieProcessor(cookiejar)
    # 1.3使用上一部创建的handler创建opener
opener=request.build_opener(handler)
    # 1.4使用opener发送登录的请求(需要人人网的邮箱和密码)
headers={
    "User-Agent":"",
}
data={
    'email':'',
    'password':'',
}
login_url=""
req=request.Request(login_url,data=parse.urlencode(data),headers=headers)
requset.urlopen(req)

# 2.访问个人主页
zhuye_url='http://'#要访问的主页url
#获取主页页面的时候,不要新建一个opener
#因该使用之前的那个opener,之前的那个opener已经包含了
#登陆需要的cookie信息
result=opener.open(zhuye_url)
#写入文本
with open('renren.html','w',encoding='utf-8') as fp:
    fp.write(resp.read().decode('utf-8'))

 

你可能感兴趣的:(简单获取cookies模拟登录)