栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python2.7自动登录并获取cookies

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python2.7自动登录并获取cookies

前言

Python由于其第三方库扩展多、接口简洁、处理网页方便等原因被广泛应用于爬虫的编写。网络爬虫的第一步即是要能够实现代码的自动登录,登录后使用获得的cookies来访问页面。

本文使用Python2.7.13+Requests来实现简单网页的登录(不含验证码)。

获取需要提交的变量

自动登录的基本原理是模拟人工填入账号密码,并向服务器进行提交,获取服务器的应答(以cookies的形式)。因此第一步我们需要知道在网页端登录时,浏览器向服务器提交的账号与密码的变量分别是什么?

这里以Google Chrome为例演示如何查看提交的账号与密码的变量名(其他浏览器类似):

打开需要登录的网址,并按F12,之后选择“Network”标签(勾选“preserve log”)如图:

之后填入账号、密码并进行登录,登录成功后在下面的页面Name中点击第一个,会在右边弹出下面的窗口,滑动到最下面可以看到Form Data,即是浏览器向服务器POST提交的数据。自动登录就是使用程序向服务器提交这些数据:其中userName即是输入的账号,passWord即是输入的密码。(注:如果第一步的时候不勾选“preserve log”,在这一步中可能看不到Form Data)


Requests模拟登陆

Requests是Python中的HTTP库,能够模拟浏览器进行网站的登录与网页内容的获取。下面使用Python代码模拟Chrome进行登录:

import urllib

import urllib2

import requests

import re

import sys

import requests.utils

sys.path.append("libs")

s=requests.session()#获取会话对象

headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36','Content-Type':'application/x-www-form-urlencoded'}#设置请求的信息头

url="http://my.its.csu.edu.cn"#设置请求的URL

Data={'userName':'XXXXX','passWord':'XXXX'}#设置请求时填写的账号密码(变量名上一步获得)

login=s.post(url,data=Data,headers=headers)#向服务器发出POST请求

print login.status_code#请求的状态码

print login.url#请求成功后跳转页面的URL

dict_cookies=s.cookies.get_dict()#获取cookies

print login.text#获取跳转后页面的内容

response=s.get(afterUrl,cookies=s.cookies,headers=headers)#获取登录后页面的内容,其中afterUrl为登陆后可见的URL

总结

使用Python2.7进行网站的模拟登陆,同时获得登陆成功的cookies。针对含有验证码的情况暂时没有考虑,后续会加上含有验证码时的处理方法。


作者:Atomwh
链接:https://www.jianshu.com/p/e64286177086


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/222591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号