解决防爬虫机制方法(二)

最近为了完成学校的大数据的作业,老师要我们爬一个的网站,里面有还算不错的防爬机制,忙活了几天,总结出一些常见的防爬机制的应对方法,方法均来自个人实战总结,非专业爬虫角度分析

承接上一次讲的方法解决防爬虫机制方法(一)-CSDN博客

3. 学会抓包

其实这个不算是防爬虫机制的方法了,主要是网站基于异步处理,就是点击了其他种类但是url并没有跳转,标签页如图下所示:

 

一般很多网页都是基于页码或者是同页面下通过转url来进行页面跳转,如果遇到这种以上这种情况也算是防爬虫的一个小手段了吧,一般每种病都是有一个编号的,但是通过控制台无法找到一个文件包含了所有疾病对应的编号 

通过搜索对应编号只有自己的url包出现,通过点击其他类型疾病后这个包还会继续保留,

然后我的做法是通过筛选出url包获取,然后将每个种类都点击一下,这样就会抓到每个类型里面全部的包,然后通过筛选如图下所示:

通过对应的导出键就可以将所有的抓包全部导出来了

 

后面则可以通过python里的haralyzer来解析包,但是里面的url地址挺多的,自己可以通过筛选出自己想要的url地址

演示代码如下所示

import json
from haralyzer import HarParser

# 用你的HAR文件路径替换下面的路径
har_file_path = 'drugs.dxy.cn.har'
# 读取HAR文件
with open(har_file_path, 'r', encoding='utf-8') as file:
    har_content = file.read()

# 将HAR文件内容转换为字典
har_dict = json.loads(har_content)

# 创建HarParser对象
har_parser = HarParser(har_dict)

# 解析HAR文件
har_data = har_parser.har_data
# print(har_data)
# 获取请求列表
# print("Keys in har_data:", har_data.keys())
# Keys in har_data: dict_keys(['version', 'creator', 'pages', 'entries'])
entries = har_data['entries']
# 打印请求的详细信息
urls = []
if entries:
    for i in range(len(entries)):
        first_entry = entries[i]
        print("Request URL:", first_entry['request']['url'])
        print("Request Method:", first_entry['request']['method'])
        print("Response Status:", first_entry['response']['status'])
        print("Response Content Type:", first_entry['response']['content']['mimeType'])
else:
    print("No entries found in the HAR file.")
print(urls[-8])

这些方法还是比较适用于一些比较简单的爬取,如果是大佬级别或者是长时间爬取的仅供参考

希望这篇博客对你有帮助!!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

短视频账号矩阵剪辑分发系统无人直播技术开发源头

一、全行业独家源头最全面的核心技术 短视频矩阵新玩法是指利用批量自动混剪系统来处理大量短视频,通过智能算法自动进行视频剪辑、场景切换、特效添加等操作,最终生成高质量、精彩纷呈的混剪视频作品的方法和技术。这一方法的出现使得大规模短视频制作…

实验数据查询

数据查询 一、实验目的 掌握使用SQL的SELECT语句进行基本查询的方法。掌握使用SELECT语句进行条件查询的方法。掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。掌握嵌套查询的方法。掌握连接查询的操作方法。 二、实验内容SQL的SELECT语句进行基本查询的…

Java SE入门及基础(14)

二重循环 1. 什么是二重循环 二重循环就是一个循环结构中又包含另外一个循环结构 while ( 外层循环条件 ){ //外层循环操作 while ( 内层循环条件 ){ //内层循环操作 } //外层循环操作 } while ( 外层循环条件 ){ //外层循环操作 for ( 循环变量初始化 ; 内层循环条…

闪存的基础知识1-Vt的编码

系列文章目录 目录 前言 一、SLC的编码 二、使SLC的编码 三、格雷码的介绍 1.定义: 2.举例 总结 前言 本节主要介绍闪存的一些编码规则 一、SLC的编码 对于SLC来说,可以定义编程态为0、擦除态为1。 二、使SLC的编码 对MLC来说,因为有四个状…

SDK游戏盾是什么?,sdk游戏盾有什么作用

在现今的游戏市场,游戏保护成为了每个游戏开发者都不能忽视的重要环节。恶意破解、作弊和盗版等问题严重影响了游戏的安全性和商业价值。而如何保护自己的游戏免受这些威胁,已经成为游戏开发者们面临的重大挑战。好在SDK游戏盾,它如同保护游戏…

JVM 一些重要配置参数

1、内存配置参数 -Xmx<size>&#xff1a;设置Java堆的最大内存。如 -Xmx2g 将堆的最大大小设置为2G&#xff0c;推荐配置为系统可用内存的70-80%-Xms<size>&#xff1a;设置Java堆的初始内存。如 -Xms2g 将堆的初始大小设置为2G&#xff0c;推荐配置与-Xmx的值相同…

【设计模式-05】Facade门面Mediator调停者 | Decorator装饰器 | Chain Of Responsibility责任链

Facade门面Mediator调停者 1、Facade门面图解 2、Mediator调停者 一般是系统内部相互交错&#xff0c;比如消息中间件(MQ)就是这种设计模式&#xff0c;对各个功能或系统之间进行解耦。 Decorator装饰器 1、问题 2、解决方案 Chain Of Responsibility责任链 一、例子场景 业…

循环冗余校验(Cyclic Redundancy Check, CRC)计算

若信息码字为111000110&#xff0c;生成多项式G(x)x^5x^3x1&#xff0c;则计算出的CRC校验码为&#xff08; &#xff09;。 A.01101 B.11001 C.001101 D.011001 循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的…

牛客周赛 Round 3 解题报告 | 珂学家 | 贪心思维场

前言 寒之不寒无水也&#xff0c;热之不热无火也。 整体评价 感觉比较简单&#xff0c;更加侧重于思维吧。和前几场的Round系列&#xff0c;风格不太一样。 A. 游游的7的倍数 因为连续7个数&#xff0c;比如有一个数是7的倍数 因此从个位数中着手添加&#xff0c;是最好的选…

软件测试|如何使用Selenium处理隐藏元素

简介 我们在使用selenium进行web自动化测试时&#xff0c;有时候会遇到元素被隐藏&#xff0c;从而无法对元素进行操作&#xff0c;导致我们的用例报错的情况。当我们遇到元素被隐藏的情况时&#xff0c;需要先对隐藏的元素进行处理&#xff0c;才能继续进行我们的操作&#x…

Spirng MVC见解1

1. SpringMVC概述 1.1 MVC介绍 MVC是一种设计模式&#xff0c;将软件按照模型、视图、控制器来划分&#xff1a; M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为数据承载Bean&#x…

xlua源码分析(五) struct类型优化

xlua源码分析&#xff08;五&#xff09; struct类型优化 上一节我们分析了xlua是如何实现lua层访问C#值类型的&#xff0c;其中我们重点提到了xlua默认实现方式下&#xff0c;struct访问的效率问题。实际上&#xff0c;xlua还提供了两种优化的方式&#xff0c;可以大大提高str…

代码随想录算法训练营Day21| 93.复原IP地址、78.子集、90.子集||

LeetCode 93 复原 IP 地址 本题思路&#xff1a;最重要的是想到一个收集结果的条件&#xff0c;也就是终止条件。 当 . 的个数达到三个时候&#xff0c;并且&#xff0c;判断最后剩余的是否符合要求&#xff0c;如果符合&#xff0c;说明整个ip地址可以&#xff0c;就加入到结…

二分图带权最大匹配-KM算法详解

文章目录 零、前言一、红娘再牵线二、二分图带权最大完备匹配2.1二分图带权最大匹配2.2概念2.3KM算法2.3.1交错树2.3.2顶标2.3.3相等子图2.3.4算法原理2.3.5算法实现 三、OJ练习3.1奔小康赚大钱3.2Ants 零、前言 关于二分图&#xff1a;二分图及染色法判定-CSDN博客 关于二分…

Java线上问题堆栈排查分析

最近线上出现类似内存溢出问题&#xff0c;需要排查具体原因&#xff0c;记录过程&#xff0c;方便备查。 一、数据抓取 在启动参数中添加参数&#xff0c;可参照以下设置。 参数的作用是在程序发生内存溢出 OutOfMemory 时打印日志&#xff0c;dump下来&#xff0c;方便用工…

xshell:关于ssh用户身份验证不能选择password的解决方法

接下来我将告诉大家如何进行修改让其能够进行密码登录 我使用的软件是VM VirtualBox管理器 进行用户名密码登录后 输入 cd /etc/ 切换到etc目录下 cd /etc/ 切换到etc目录后输入ls ls 切换到ssh目录下 cd ssh 进入文件 sshd_config vi sshd_config 找到指定部分进行修改 如何…

华为云优惠券介绍、种类、领取入口及使用教程

华为云作为国内领先的云服务提供商&#xff0c;为了吸引用户&#xff0c;经常推出各种优惠活动&#xff0c;其中就包括华为云优惠券。通过领取和使用优惠券&#xff0c;可以降低用户上云成本&#xff0c;提升用户上云的使用体验。本文将详细介绍华为云的优惠券&#xff0c;包括…

操作系统--内存管理

一、虚拟内存的提出 单片机 没有操作系统只能运行一个程序每次都要借助工具把代码烧录进去&#xff08;后面的程序会把之前的覆盖&#xff09; 单片机的 CPU 是直接操作内存的「物理地址」 现在的问题是 有操作系统需要同时运行多个程序&#xff08;把进程所使用的地址「隔离」…

车载以太网——DDS篇

摘要&#xff1a; DDS为信息交换和应用程序集成创建了一个简单而强大的体系结构。 01、什么是DDS DDS是一系列标准&#xff0c;它指定了分布式应用程序可用于交换实时数据的API、协议和安全机制。应用程序所使用的软件应用程序编程接口&#xff08;API&#xff09;是基于一个…

“超人练习法”系列09:耶克斯–多德森定律

01 你现有水平和学习风格 搞明白自己是个大事&#xff0c;搞不明白就糊涂一辈子。 首先&#xff0c;要弄清楚自己现在是个啥水平&#xff0c;有啥技能可以拿出来的&#xff0c;然后再定个目标&#xff0c;知道自己想往哪方面努力。 你擅长的学习方式是啥呢&#xff1f;是那种…