Python编程基础训练之网络爬虫利用Cookies信息登录豆瓣网

在前一篇获取Cookies信息的基础之上:https://blog.csdn.net/lfy905805357/article/details/93520231

进一步可以利用Cookies登录豆瓣网页~

测试访问页面时是否处于登录状态,可以通过访问一个登录后才能访问的页面,例如涉及用户信息的页面,比如下图中登录

豆瓣之后才能访问的我的豆瓣

个人主页访问链接如下:https://www.douban.com/people/198456540/

不同用户此链接会有差异

一、源码 

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 24 20:32:31 2019

@author: UnderMask
"""

#利用Cookies信息登录豆瓣网
import requests
import http.cookiejar as cookielib
import random#随机添加/修改User-Agent
ualist = [#一些可用的浏览器名称
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24" ]
session = requests.session()
session.cookies = cookielib.LWPCookieJar(filename='doubanCookies.txt')
url = 'https://www.douban.com/people/198456540/'#自己的个人主页
headers = {"Connection":"Keep-alive", "User-Agent":random.choice(ualist)}#随机添加/修改User-Agent
#从doubanCookies.txt文件中加载cookie信息
session.cookies.load()
#allow_redirects如果不设置,session访问时,服务器返回302,然后session会自动重定向到登录页面,获取到登录页面之后,变成200的状态码,设置为False就是不允许重定向
res = session.get(url, headers = headers, allow_redirects = False)
#判断status_code返回值是否为200,如果是则代表当前的cookie信息有效
if res.status_code == 200:
    print('Cookies is login')
else:
    print('Cookies is not login')#可能Cookies超过时间失效,换账号密码继续登录
    data = {'name':'xxxxxxxxxxx', 'password':'xxxxxx'}#自己的账号密码
    r = session.post(url, data = data, headers = headers)
    print(r.status_code)
    print('Account password is login')

二、运行效果

这样就可以通过Cookies进行网页登录操作~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章