数据篇| 关于Selenium反爬杂谈

ops/2024/9/25 3:20:09/

在这里插入图片描述

友情提示:本章节只做相关技术讨论, 爬虫触犯法律责任与作者无关。

LLM虽然如火如荼进行着, 但是没有数据支撑, 都是纸上谈兵, 人工智能的三辆马车:算法-数据-算力,缺一不可。之前写过关于LLM微调文章《微调入门篇:大模型微调的理论学习》、《微调实操一: 增量预训练(Pretraining)》、《微调实操三:人类反馈对语言模型进行强化学习(RLHF)》、《微调实操四:直接偏好优化方法-DPO》等文章, 奈何无大数据支撑,停留在浅显层面,所以有必要学习数据获取相关技术发展。数据在这个领域起着至关重要的角色。数据作为重要的生产要素, 是企业核心资产,但对于大部分普通用户基本利用爬虫方获取,强如搜索引擎也同样离不开爬虫, 爬虫离不开反爬这个话题。 爬虫除了能够获取数据之外, 对于自动化测试、提高重复性工作效率同样有借鉴意义。

细心的同学肯定会发现,现在网站的验证码、验证逻辑越来越复杂, 以下图为例, 让机器自动化的难度越来越大。

在这里插入图片描述

现在大部分网站都采用js动态渲染, 传统接口抓取的缺点是抓不到 js 渲染后的页面和服务器渲染的web页面。

Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些 JavaScript 动态渲染的页面来说,此种抓取方式非常有效, Selenium虽然能够模拟人的行为, 依然会出现爬虫的限制, 有哪些针对Selenium反爬的策略呢?今天我们一起深入研究一下:

1、 ip 代理, 轮换ip

2、禁用webdriver等自动化标识

3、轮换http header等标识

4、移除JavaScript标志

5、使用cookie

6、使用浏览器插件


http://www.ppmy.cn/ops/115592.html

相关文章

解决Gson将长数字( json字符串)转换为科学记数法格式

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…

【C++ 基础数学 】2121. 2615相同元素的间隔之和|1760

本文涉及的基础知识点 基础数学 LeetCode2121. 相同元素的间隔之和 难度分:1760 令2165,和此题几乎相等。 给你一个下标从 0 开始、由 n 个整数组成的数组 arr 。 arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地,arr[i] 和…

探索图像生成大模型Imagen:从理论到代码实践

一、引言 在当今的人工智能领域,图像生成技术取得了令人瞩目的进展。其中,Imagen作为一款强大的图像生成大模型,吸引了众多研究者和开发者的目光。它能够生成高质量、逼真的图像,为艺术创作、游戏开发、虚拟现实等众多领域带来了无…

[Linux]用户管理指令

开机/重启/登录/注销 进入xhsell 或者虚拟系统中, 右键桌面打开终端, 在终端执行命令, 重启或关机linux系统 建议使用普通账号登录, 如果权限不够时, 使用 su - 用户名 命令切换到超管, 然后再使用 logout命令退回到普通账号, logout 不能在图形界面的终端中使用 用户管理 Li…

常见统计量与其抽样分布

什么是统计量 我们首先给出统计量的定义:设 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​ 为来自于总体X的一个样本, g ( X 1 , X 2 , ⋯ , X n ) g(X_1,X_2,\cdots,X_n) g(X1​,X2​,⋯,Xn​) 为关于 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X…

作业帮大数据面试题及参考答案

HashMap 和 HashTable 的区别是什么? HashMap 和 HashTable 都是 Java 中用于存储键值对的数据结构,但它们之间存在一些重要的区别: 线程安全性: HashTable 是线程安全的,它的方法都被 synchronized 关键字修饰,这意味着在多线程环境下可以直接使用而无需额外的同步措施。…

Mysql数据库实现分布式锁

使用 MySQL 数据库实现分布式锁可以确保在多实例环境中定时任务不重复执行。 创建锁表 CREATE TABLE distributed_lock (lock_name VARCHAR(64) PRIMARY KEY,locked_by VARCHAR(64),locked_at DATETIME,timeout_at DATETIME );获取锁 在获取锁时,你需要尝试插入一…

金仓数据库 KingbaseES参考手册 (8. 函数(九))

8.299. SCALE 用法: scale(numeric)功能: SCALE返回参数的精度(小数点后的位数)。 例子: SELECT scale(8.41);8.300. SCORE 用法: SCORE(lable number)输入参数: lable:表示第几个co…