认识爬虫:提取网站 cookie 信息,并使用 cookie 信息实现登录

2023-10-27

为什么要使用 cookie 信息来进行爬虫呢?做后端的朋友们都知道,一般情况下,在服务器上发布接口都是要设置身份信息验证,验证的方式就是通过 cookie 信息中包含的身份认证来进行验证。在身份验证通过之后,才能获取到响应接口的信息,所以,掌握这一点在爬虫过程中也是极为必要,不然只能爬取一些不需要验证的公开信息,话不多说,我们进入实战环节。

1、导入依赖的第三方扩展库
 1# -*- coding: UTF-8 -*-
 2
 3# 导入 urllib 库,对请求参数进行编码
 4import urllib
 5
 6# 导入 urllib2 库,完成网络请求
 7import urllib2
 8
 9# 导入 cookielib 库,用于操作 cookie 信息
10import cookielib
2、登录网站并提取 cookie 信息进行保存
 1# 设置文件路径
 2filename = u'usr/load/cookie.txt'
 3
 4# 创建 MozillaCookieJar 对象用于操作 cookie 信息
 5cookie_obj = cookielib.MozillaCookieJar(filename)
 6# 构建 opener 对象
 7opener_obj = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_obj))
 8
 9# 构建用户名、密码,并进行 encode 编码
10params = urllib.urlencode({
11    'account': '000000',
12    'passwd': '000000'
13})
14
15# 定义网站登录地址
16login_url = 'http://wefd.com/login'
17
18# 向服务器发送请求、实现用户名/密码登录
19result = opener_obj.open(url=login_url, data=params)
20
21# 保存 cookie 信息
22cookie_obj.save(ignore_discard=True, ignore_expires=True)
3、提取保存的 cookie 信息并使用 cookie 信息完成登录
 1# 创建 MozillaCookieJar 实例对象用于操作 cookie 信息
 2cookie_obj = cookielib.MozillaCookieJar()
 3
 4# 设置文件路径
 5filename = u'usr/load/cookie.txt'
 6
 7# 加载 cookie 信息到 MozillaCookieJar 对象
 8cookie_obj.load(filename, ignore_discard=True, ignore_expires=True)
 9
10# 定义网站登录地址
11login_url = 'http://wefd.com/login'
12
13# 创建 Request 请求
14request = urllib2.Request(login_url)
15
16# 构建 opener 对象,并加入 cookie 信息
17opener_obj = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_obj))
18
19# 执行登录请求
20response = opener_obj.open(request)
21print response.read()

更多精彩前往微信公众号【Python 集中营】,专注于 python 技术栈,资料获取、交流社区、干货分享,期待你的加入~

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

认识爬虫:提取网站 cookie 信息,并使用 cookie 信息实现登录 的相关文章

  • 稀有对象的 python 类型注释,例如 psycopg2 对象

    我了解内置类型 但是我如何指定稀有对象 例如数据库连接对象 def get connection and cursor gt tuple psycopg2 extensions cursor psycopg2 extensions conn
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • Mypy 无法从文字列表推断项目的类型

    我有一个变量x和一个文字列表 例如 0 1 2 我想转换x这些文字之一 如果x在列表中 我将其退回 否则我返回一个后备值 from typing import Literal Set Foo Literal 0 1 2 foos Set F
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型

随机推荐

  • MAC系统 WORD 如何调整自动序号的间隔距离

    在MAC big Sur系统中 安装OFFICE 后 遇到WORD排版时 自动序号的间隔距离太远 研究一段时间发现可以用以下方式解决 1 问题界面 二 解决步骤 选中文字后 点击右键 选择 段落 点击 制表符 点击 全部清除 点击 确定 最
  • 最长公共上升子序列(LCIS)

    目录 一 前言 二 最长公共上升子序列 1 问题描述 2 基本思路 1 状态表示 2 状态计算 三 题例 1 上链接 2 基本思路 3 代码 1 python未优化版 2 python优化版 一 前言 对于学计算机的同学来说 学习算法是一件
  • 【DockerCE】使用docker配置和运行HertzBeat

    HertzBeat是一款免Agent的监控平台 拥有强大自定义监控能力 可以对应用服务 中间件 数据库 操作系统 云原生等进行监控 配置监控告警阈值 以及告警通知 邮件 微信 钉钉 飞书 关于这个软件的介绍 我这里就不做过多的介绍了 感兴趣
  • (二)代码好坏判定

    好坏只是笼统的判定 好代码 易扩展 易读 简单 易维护 判断代码的角度 灵活性 flexibility 可扩展性 extensibility 可维护性 maintainability 可读性 readability 可理解性 underst
  • Linux多进程编程

    fork系统调用 include
  • scrapy爬虫的搭建过程(实战篇)

    scrapy爬虫的搭建过程 实战篇 1 爬虫功能 以 http bbs fengniao com forum forum 125 1 lastpost html 为起始页 爬取前十页的信息 包括文章的标题 链接地址和图片地址 保存到mong
  • 超详细!基于Proteus的简易测频计实现(数字电路课程设计)

    本文阐述基于Proteus 7 8的简易测频计电路的实现 附具体电路的工程文件下载 工程文件下载链接 设计要求 闸门时间1S 10S可选 读数保持时间10秒 可选 四位数字显示 范围000 1 9999 Hz 能够自动进行下一次测量 设计方
  • 关于null的typeof和instanceof

    问题 alert typeof null object alert null instanceof Object false 答案 这是由Javascript规范规定的 Null和Object都是javascript中的数据类型 Null数
  • DC靶机系列:DC-3

    一 信息收集 查询本机ip及目标靶机ip 本机ip 192 168 56 104 利用nmap查询同网段存活的ip 或者使用arp scan l 靶机ip为 192 168 56 112 下一步收集靶机开放的端口信息 收集靶机开放端口 输入
  • Springboot解决跨域问题的配置

    由于自己是主后端开发 前端自己很少去配置 所以自己留一个配置SpringBoot配置跨域问题的代码在这里 注意一点 如果是在生产环境 应该根据实际需求设置allowedOrigins来限制允许访问的域名 而不是使用通配符 import or
  • nvidia 显卡硬件文档手册

    https github com NVIDIA open gpu doc
  • vue项目控制按钮是否显示

    import Vue from vue permission 用于控制是否显示按键 控制权限的指令 Vue directive has bind function el binding if Vue
  • 批量将markdown内本地图片转换为网络图片

    批量将markdown内本地图片转换为网络图片 在线地址 http 106 52 170 128 8003 需求 大部分支持markdown格式的网站 都不支持将markdown和其内置的图片同时上传到服务器 因此增大了小朋友们写文档的负担
  • 软件开发中几个常用功能的实现

    软件开发中几个常用功能的实现 出处 vchelp net责任编辑 leelee 04 8 12 10 01 作者 戚高 在进行软件开发过程中间 有很多小功能的实现 虽然这些东西你可以不用 但是如果应用仂将会是你的程序更具有专业性 一 设置程
  • Unity 3D 动画系统(Mecanim)

    Unity 3D 动画系统 Mecanim Mecanim 动画系统是 Unity 公司推出的全新动画系统 具有重定向 可融合等诸多新特性 可以帮助程序设计人员通过和美工人员的配合快速设计出角色动画 其主界面如下图所示 Unity 公司计划
  • 小写的bool和大写BOOL

    bool是标准C 中的布尔量 占一个字节大小内存 只有false或者true 具有跨平台特性 BOOL是MFC定义的宏 typedef int BOOL define FALSE 0 define TRUE 1 其实是个int类型 占四个字
  • 学习笔记1.STM32HAL库之点灯

    学习笔记1 STM32HAL库之点灯 前段时间学习了51单片机的相关知识 接下来进行32的学习 这里我使用的是野火的stm32f103v6核心板 进入正题 1 首先打开cubemx 进行相关配置 选择SYS 在debug中选择烧录方式 Se
  • codeforces 950 #469 div2 D A Leapfrog in the Array

    Problem codeforces com contest 950 problem D Reference Codeforces Round 469 Div 2 D A Leapfrog in the Array 思维 Meaning 开
  • 单链表的插入和删除

    前言 在上一篇文章 单链表的定义 中我们已经了解了单链表的含义和简单的实现 那么在这篇文章中 我们将要来讲解单链表的插入和删除操作 按位序插入 带头结点 我们在上篇文章中已经讲解过 如果想要在表L中的第i个位置上插入指定元素e 我们需要找到
  • 认识爬虫:提取网站 cookie 信息,并使用 cookie 信息实现登录

    为什么要使用 cookie 信息来进行爬虫呢 做后端的朋友们都知道 一般情况下 在服务器上发布接口都是要设置身份信息验证 验证的方式就是通过 cookie 信息中包含的身份认证来进行验证 在身份验证通过之后 才能获取到响应接口的信息 所以