需要登录的网站爬虫详解

概述

  1. 介绍一下请求状态原理
  2. 分析需要登录的网站请求特点
  3. 分析登陆前后请求差异
  4. 如何从接口分析一步步构建一个合理的登录爬虫
  5. 巧方法解决登录

案例分析

案例一

https://login2.scrape.center/
默认重定向导致无法获取到重定向前的cookie

案例二爬虫源码
# coding=utf-8import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Cache-Control': 'no-cache','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded','Origin': 'https://login2.scrape.center','Pragma': 'no-cache','Referer': 'https://login2.scrape.center/login','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'same-origin','Sec-Fetch-User': '?1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}data = {'username': 'admin','password': 'admin',
}response = requests.post('https://login2.scrape.center/login', headers=headers, data=data, allow_redirects=False)
status = response.status_code
################### 直接获取响应的cookie字段 ################
logined_cookies = response.cookies
print(status)
print(logined_cookies)
# 将cookies输出为字典
print(dict(logined_cookies))  # {'sessionid': 'h1d41qkv8qzrlhk0ykfzx54g3ph0od6j'}################# 从响应头内获取cookie ###################
headers_resp = dict(response.headers)
cookies = headers_resp.get('Set-Cookie')  # 获取到cookie字符串
print(cookies)  # sessionid=h1d41qkv8qzrlhk0ykfzx54g3ph0od6j; expires=Wed, 24 Jan 2024 23:40:31 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Lax

案例二

https://login3.scrape.center/login

案例三

法信爬虫

登录脚本
# coding=utf-8
import timeimport requestscookies = {'ASP.NET_SessionId': 'at0wmkahm3o1yf2uzdcyo24z','insert_cookie': '89314150','showUpdate': '2024-01-05','Hm_lvt_a317640b4aeca83b20c90d410335b70f': '1704930439','clx': 'n','sid': 'at0wmkahm3o1yf2uzdcyo24z','isAutoLogin': 'off','Hm_lpvt_a317640b4aeca83b20c90d410335b70f': str(int(time.time())),
}headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Cache-Control': 'no-cache','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded',# 'Cookie': 'ASP.NET_SessionId=at0wmkahm3o1yf2uzdcyo24z; insert_cookie=89314150; showUpdate=2024-01-05; Hm_lvt_a317640b4aeca83b20c90d410335b70f=1704930439; clx=n; sid=at0wmkahm3o1yf2uzdcyo24z; isAutoLogin=off; Hm_lpvt_a317640b4aeca83b20c90d410335b70f=1704930535','Origin': 'https://www.faxin.cn','Pragma': 'no-cache','Referer': 'https://www.faxin.cn/login.aspx?url=/lib/zyfl/zyflcontent.aspx%3Fgid=A341404%26libid=010101','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'same-origin','Sec-Fetch-User': '?1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}data = {'__VIEWSTATE': '/wEPDwUJNzUzMzc2OTcyZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAgUKaXNSZW1lbWJlcgULaXNBdXRvTG9naW7CqpQN/iu5+xaD2O1P5o5lGgo7gA==','__VIEWSTATEGENERATOR': 'C2EE9ABB','WebUCHead_Special1$hiddIsLogin': '0','WebUCSearchNoAdvSearch1$lib': '','keyword': '','user_name': '',# 你的用户名'user_password': '', # 你的密码'isLogout': '0',
}response = requests.post('https://www.faxin.cn/login.aspx?url=%2flib%2fzyfl%2fzyflcontent.aspx%3fgid%3dA341404%26libid%3d010101',cookies=cookies,headers=headers,data=data,allow_redirects=False
)status = response.status_code
################### 直接获取响应的cookie字段 ################
logined_cookies = response.cookies
print(status)
print(logined_cookies)
# 将cookies输出为字典
print(dict(logined_cookies))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络期末复习(二)

物理层 解决:如何在连接各种计算机的传输媒体上传输比特流,而不是具体的传输媒体。 传输媒体:比如双绞线、同轴电缆、光纤等等。 主要任务:确定于传输媒体接口有关的一些特性。 传输媒体 导向形 非导向形 调制解调器 数字信号 和…

LeetCode [103] 二叉树的锯齿形层序遍历

Description: 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 解法:基本跟102类似,加了一个…

杰理AC63蓝牙名修改

杰理SDK会自动从VM区域读取蓝牙名字。代码如下&#xff0c;在user_cfg.c文件里。 //-----------------------------CFG_BT_NAME--------------------------------------//ret syscfg_read(CFG_BT_NAME, tmp, 32);if (ret < 0) {log_info("read bt name err\n");}…

CSGO服务器搭建细节

在搭建CSGO服务器之前&#xff0c;我们首先需要确保电脑上已经安装好了所需的软件环境。这里我们需要安装SteamCMD和HLDSUpdateTool工具&#xff0c;并在安装之后进行相关的配置&#xff0c;才能顺利地跑起服务器。同时&#xff0c;在准备环境的同时&#xff0c;我们还要考虑服…

C++ 具名要求-全库范围的概念 -谓词(Predicate)-二元谓词(BinaryPredicate)

此页面中列出的具名要求&#xff0c;是 C 标准的规范性文本中使用的具名要求&#xff0c;用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前&#xff0c;确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…

贝锐蒲公英云智慧组网解读:实现工业设备远程调试、异地PLC互联

这个时候&#xff0c;使用异地组网是非常有效的解决方案。在12月28日贝锐官方的直播中&#xff0c;请到了贝锐蒲公英的技术研发经理&#xff0c;为大家分享了贝锐蒲公英云智慧组网解决方案&#xff0c;以及蒲公英二层组网相关的技术和应用。 搜索“贝锐”官方视频号&#xff0c…

XCTF:再见李华[WriteUP]

从题目中下载到图片 md5&#xff1a;1a4fb3fb5ee12307 十六位的哈希数&#xff0c;但没任何意义(只有迷惑作用) 扔进binwalk中分析有没有隐藏的文件 发现有个ZIP文件 使用foremost尝试提取 foremost mail2LiHua.jpg 提取成功 但是这个zip文件开了密码 里面的key应该就是…

【图解面试】JS系列 - 如何回答数据类型相关问题(上)

1. JS中的数据类型有哪些&#xff0c;他们的区别是什么&#xff1f; 知识点大纲 语言组织&#xff08;示例&#xff09; 要点&#xff1a;数量 → 种类 → 区别 JS中的数据类型主要有 8 种&#xff0c;分为两大类 基础数据类型 和 引用数据类型 基础数据类型中主要有 Numbe…

11Spring IoC注解式开发(下)(负责注入的注解/)

1负责注入的注解 负责注入的注解&#xff0c;常见的包括四个&#xff1a; ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时&#xff0c;可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直…

【电商API接口】jd.item_search按关键字搜索京东商品返回值和参数说明

item_search-按关键字搜索商品 [查看演示] API测试工具 注册开通 jd.item_search 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08…

Vue学习笔记六--Vue3学习

1、Vue3的优势 2、创建Vue3工程 前提&#xff1a;node -v 查看node版本&#xff0c;需要在16.0及以上 创建命令 npm init vuelatest,先安装create-vue然后创建项目 然后执行npm run dev 提示 sh: vite: command not found,需要执行npm i重新安装依赖&#xff0c;之后再执行np…

【目标跟踪】多相机多目标跟踪

文章目录 前言一、计算思路二、代码三、结果 前言 单相机目标跟踪之前博客已经有过基本介绍&#xff0c;本篇博客主要介绍一种多相机目标跟踪的计算方法已知各相机内外参&#xff0c;如何计算共视区域像素投影&#xff1f;废话不多说&#xff0c;见下图。 同一时刻相机A与相机…

大争之世,GPT Store 正式上线将带来哪些影响?

生产者视角&#xff0c;ChatGPT周边商业边界全面打开&#xff0c;应用生产零门槛、抄袭无限&#xff0c;看谁能持续创新取胜。 用户视角&#xff0c;有益应用可选性广&#xff0c;可根据自身需求选择适用场景&#xff0c;臻于个性化体验。 请访问http://chat.openai.com/gpts进…

路由器实验总结(静态路由配置)

1、静态路由的配置 R2(config)#int s0/0/0 R2(config)#ip add 192.168.3.2 255.255.255.0 R2(config)# no shut R1(config)#int s0/0/0 R1(config)#ip add 192.168.3.1 255.255.255.0 R1(config)# no shut串口的配置是这样的&#xff0c;静态路由如下&#xff1a; R2(config)#…

el-dialog 内部添加固定定位 ,背景颜色超出问题 (粘性定位)

使用固定定位会出现背景颜色超出的问题 position: fixed;left: 0;bottom: 0;width: 80%;height: 50px;line-height: 50px;text-align: center;background-color: #fff;overflow: hidden; 解决办法 粘性定位 position: sticky;bottom: 0;width: 100%;height: 50px;line-height…

ABeam×StartUp丨ABeam旗下德硕管理咨询(深圳)新创部门拜访「光子晶体科技」

光子晶体科技 ABeamStartUp 光子透明芯片 显示技术 光学材料 近日&#xff0c;ABeam 旗下德硕管理咨询&#xff08;深圳&#xff09;有限公司&#xff08;以下简称“ABeam-SZ”&#xff09;新创部门一行拜访了深圳光子晶体科技有限公司&#xff08;以下简称“光子晶体科技”…

内存淘金术:Redis 内存满了怎么办?

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 内存淘金术&#xff1a;Redis 内存满了怎么办&#xff1f; 前言LRU&#xff08;Least Recently Used&#xff09;算法LFU&#xff08;Least Frequently Used&#xff09;算法定期淘汰策略内存淘汰事件…

vulhub中的Nginx 文件名逻辑漏洞(CVE-2013-4547)

目录 Nginx 文件名逻辑漏洞&#xff08;CVE-2013-4547&#xff09; 1.cd到CVE-2013-4547 2.执行docker-compose up -d 3.查看靶场是否开启成功 4.访问浏览器 5.上传含有一句话木马的图片 6.burp抓包 7.在shell.gif加空格 8.放包 9.访问路径 10.继续抓包 11.在aa后面…

EasyExcel简单实例

EasyExcel简单实例 准备工作场景一&#xff1a;读取 Student 表需求1&#xff1a;简单读取需求2&#xff1a;读取到异常信息时不中断需求3&#xff1a;读取所有的sheet工作表需求4&#xff1a;读取指定的sheet工作表需求5&#xff1a;从指定的行开始读取 场景二&#xff1a;写入…

鸿蒙原生应用再添新丁!京东入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;京东入局鸿蒙 来自 HarmonyOS 微博1月10日消息&#xff0c;#京东启动鸿蒙原生应用开发#&#xff01;优惠信息、派送进度都可以随时随地便捷查询。双方将携手为消费者带来全场景“多快好省”购物体验&#xff0c;更智能&#xff0c;更贴心&…