当前位置: 首页 > news >正文

西安门户网站开发/网络推广公司经营范围

西安门户网站开发,网络推广公司经营范围,网站建设项目方案模板,2024政治时政热点以下是常见头部反爬技巧与验证方式的大纲: User-Agent 字段的伪装方式,Referer 字段的伪装方式,Cookie 字段的伪装方式。 文章目录1. ⛳️ 头部反爬技巧1.1. User-Agent 字段&User-Agent 的作用1.2. 常见 User-Agent 的特征1.3. User-Age…

以下是常见头部反爬技巧与验证方式的大纲:
User-Agent 字段的伪装方式,Referer 字段的伪装方式,Cookie 字段的伪装方式。

文章目录

    • 1. ⛳️ 头部反爬技巧
      • 1.1. User-Agent 字段&User-Agent 的作用
      • 1.2. 常见 `User-Agent` 的特征
      • 1.3. User-Agent 字段的伪装方式
    • 2. ⛳️ Referer 字段
      • 2.1. Referer 的作用
      • 2.2. Referer 的特征
      • 2.3. Referer 字段的伪装方式
    • 3. ⛳️ Cookie 字段
      • 3.1. Cookie 的作用
      • 3.2. Cookie 的特征
      • 3.3. Cookie 字段的伪装方式

1. ⛳️ 头部反爬技巧

1.1. User-Agent 字段&User-Agent 的作用

User-Agent 字段是 HTTP 协议中的一个请求头部,通常用于标识客户端发送请求的应用程序、操作系统、设备类型、版本等信息。服务器可以根据 User-Agent 字段来判断请求是否来自合法的客户端,做出相应的响应,比如返回不同的网页内容、进行流量控制等。

下面是一些 User-Agent 字段的例子,重点对比其差异。

  • Chrome 浏览器的 User-Agent 字段:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
  • Firefox 浏览器的 User-Agent 字段:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari 浏览器的 User-Agent 字段:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15
  • 微信小程序的 User-Agent 字段:Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Mobile/16A366 MicroMessenger/7.0.10(0x17000a22) NetType/WIFI Language/zh_CN
  • Python 爬虫的 User-Agent 字段:Python-urllib/3.8

写python爬虫,你永远绕不过去代理问题

1.2. 常见 User-Agent 的特征

常见 User-Agent 的特征包括以下几点:

  1. 操作系统信息:User-Agent 字段通常会包含操作系统的信息,比如 Windows、MacOS、Linux 等,不同的操作系统使用的浏览器可能不同,因此对于一些网站来说,操作系统的信息也可以作为反爬手段之一。

  2. 浏览器信息:User-Agent 字段还会包含浏览器的信息,比如 Chrome、Firefox、Safari 等。不同的浏览器在渲染网页时可能会有一些差别,因此一些网站会根据浏览器信息来判断是否是爬虫。

  3. 设备信息:User-Agent 字段有时也会包含设备信息,比如 iPhone、iPad 等。不同设备使用的浏览器也可能不同,因此设备信息也可以作为反爬手段之一。

  4. 自定义 User-Agent:有些爬虫工具允许用户自定义 User-Agent 字段,因此一些网站也会根据这些自定义 User-Agent 来判断是否是爬虫。

1.3. User-Agent 字段的伪装方式

在 Python 中伪装 User-Agent 字段,可以使用第三方库 fake-useragent,它可以随机生成不同浏览器的 User-Agent

使用 pip 命令安装 fake-useragent 库:

pip install fake-useragent

使用以下代码生成随机的 User-Agent

from fake_useragent import UserAgentua = UserAgent()
print(ua.random)

在这里插入图片描述
这样就能每次生成一个不同的随机 User-Agent 了。另外,fake-useragent 还支持指定不同浏览器的 User-Agent,例如:

from fake_useragent import UserAgentua = UserAgent()
print(ua.chrome)  # 生成Chrome浏览器的User-Agent
print(ua.safari)  # 生成Safari浏览器的User-Agent
print(ua.ie)  # 生成IE浏览器的User-Agent

2. ⛳️ Referer 字段

2.1. Referer 的作用

Referer 是 HTTP 请求头中的一个字段,用来表示当前请求是从哪个页面跳转过来的。
通常在请求图片、视频、音频等静态资源时,浏览器会自动添加 Referer 字段,用来告诉服务器当前资源是从哪个页面发起请求的,服务器就可以根据这个信息做一些统计、记录或者安全控制等操作。

Referer 字段的作用主要有以下几点:

  • 防盗链:有些网站可能会设置一些图片或者视频等静态资源,只有在自己的网站上才能正常显示,如果从其他网站上直接访问,就会被拒绝访问。此时可以通过 Referer 字段来判断是否是从自己网站上来的请求,如果不是就拒绝访问。
  • 流量统计:通过 Referer 字段可以统计来访者是从哪个页面过来的,从而了解不同页面的流量情况,对网站进行优化。
  • 安全控制:有些网站可能会针对特定的 Referer 来源做一些安全控制,如防止 CSRF 攻击等。

2.2. Referer 的特征

Referer 是 HTTP 请求头的一部分,它记录了当前请求的来源页面,即发送请求的页面 URL。具体来说,当用户从一个页面 A 点击链接跳转到另一个页面 B 时,页面 B 的请求头中的 Referer 字段会记录页面 A 的 URL。

Referer 的特征主要包括:

  1. Referer 字段中记录的 URL 是前一次请求的 URL。因此,如果请求头中没有 Referer 字段,或者 Referer 字段中的 URL 与当前请求的 URL 不符,则可能被认为是异常请求,从而被服务器屏蔽或拒绝。

  2. Referer 字段可以用于防盗链,即通过判断 Referer 字段来判断是否是从合法的网站访问资源。比如,某个网站的图片资源只允许从该网站访问,而不允许其他网站直接链接该资源。这时,服务器可以通过判断 Referer 字段来防止其他网站直接链接该资源。

  3. Referer 字段可能会泄漏用户的隐私信息,因为它可以记录用户的浏览历史。为了保护用户的隐私,一些浏览器可能会限制 Referer 字段的发送,或者发送空的 Referer 字段。

2.3. Referer 字段的伪装方式

要伪装 Referer 字段,可以通过构造请求头部实现。下面是用 Python 实现的示例代码:

import requestsurl = 'https://pachong.vip'
referer = 'https://www.referer.com'headers = {'Referer': referer,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}response = requests.get(url, headers=headers)

在请求头中添加 Referer 字段,值为想要伪装成的来源页面的 URL。以上代码中,将 Referer 设置为 https://www.referer.com。

如果设置的 Referer 不符合实际情况,有可能会被网站识别为爬虫,导致请求被拒绝。因此,在进行爬虫时,应该根据具体情况,合理设置 Referer 字段。

3. ⛳️ Cookie 字段

3.1. Cookie 的作用

Cookie 是 Web 服务器发送给 Web 浏览器的小型文本文件,用于存储用户在浏览器中的状态信息。它可以使网站记住用户的登录状态、购物车内容、浏览历史等。

当用户访问一个网站时,Web 服务器会在 HTTP 响应头中添加 Set-Cookie 头信息,浏览器接收到响应后,会将 Cookie 保存在本地。当用户再次访问该网站时,浏览器会将保存的 Cookie 信息发送给 Web 服务器,服务器根据 Cookie 中的信息来进行相应的处理,比如保持用户登录状态等。

Cookie 的作用可以简单总结为三点:

  1. 记录用户的状态信息,如登录状态、购物车内容、浏览历史等;
  2. 使用户在访问同一个网站时能够保持同一个状态,比如不需要重复登录;
  3. 用于跟踪用户行为,帮助网站分析用户兴趣、推荐相关内容。

3.2. Cookie 的特征

  1. 存储在客户端:Cookie 是存储在客户端浏览器中的文本文件,可以通过浏览器进行查看和修改。

  2. 用于状态管理:Cookie 主要用于状态管理,例如网站登录状态的保存,购物车中的商品信息的保存等。

  3. 可以设置过期时间:可以在创建 Cookie 时设置过期时间,使得浏览器可以在过期时间之前将其删除。

  4. 每个域名单独存储:每个域名在客户端上都有一个单独的 Cookie 存储空间,不同域名之间的 Cookie 互不干扰。

  5. 大小限制:Cookie 存储的数据量有大小限制,通常为 4KB 左右。

  6. 不安全性:Cookie 存储的数据都是明文的,可能会被恶意篡改或者窃取。因此,敏感信息不应该存储在 Cookie 中。

  7. 可以禁用:浏览器允许用户手动禁用 Cookie,因此不能完全依赖 Cookie 进行状态管理。

3.3. Cookie 字段的伪装方式

  1. 手动设置 Cookie:可以在请求头中手动设置 Cookie 字段,模拟浏览器发送的请求。具体实现方式为,在构建 HTTP 请求时,添加请求头中的 Cookie 字段并填入具体的 Cookie 值。
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36','Cookie': 'name=value'
}response = requests.get(url, headers=headers)
  1. 使用第三方库:可以使用第三方库进行 Cookie 伪装。例如,使用 fake_useragent 库伪装 User-Agent 和 http.cookiejar 库伪装 Cookie。
import requests
from fake_useragent import UserAgent
import http.cookiejar as cookielib# 构建cookiejar对象
cookie_jar = cookielib.CookieJar()# 构建opener
opener = requests.build_opener(requests.HTTPCookieProcessor(cookie_jar))# 构建headers
headers = {'User-Agent': UserAgent().random}# 发送请求
response = opener.open(url, headers=headers)
  1. 使用 Selenium 模拟浏览器:使用 Selenium 可以直接在浏览器中登录网站获取 Cookie,然后使用获取到的 Cookie 来发送请求。
from selenium import webdriver# 构建浏览器对象
browser = webdriver.Chrome()# 打开网站并登录
browser.get(url)
# ...# 获取Cookie
cookies = browser.get_cookies()# 构建cookie字符串
cookie_str = ''
for cookie in cookies:cookie_str += cookie['name'] + '=' + cookie['value'] + ';'# 构建请求头
headers = {'Cookie': cookie_str}# 发送请求
response = requests.get(url, headers=headers)

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 1124 篇原创博客

从订购之日起,案例 5 年内保证更新

  • ⭐️ Python 爬虫 120,点击订购 ⭐️
  • ⭐️ 爬虫 100 例教程,点击订购 ⭐️

相关文章:

【爬虫理论实战】详解常见头部反爬技巧与验证方式 | 有 Python 代码实现

以下是常见头部反爬技巧与验证方式的大纲: User-Agent 字段的伪装方式,Referer 字段的伪装方式,Cookie 字段的伪装方式。 文章目录1. ⛳️ 头部反爬技巧1.1. User-Agent 字段&User-Agent 的作用1.2. 常见 User-Agent 的特征1.3. User-Age…...

基于SpringBoot+Vue的鲜花商场管理系统

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…...

华为OD机试 - 静态扫描最优成本(JS)

静态扫描最优成本 题目 静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出: 文件扫描的成本和文件大小相关,如果文件大小为 N ,则扫描成本为 N 个金币扫描报告的缓存成本和文件大小无关,每缓存一个报告需要 M 个金币扫描报告缓存后,后继再碰到该文件则不…...

多层感知机

多层感知机理论部分 本文系统的讲解多层感知机的pytorch复现,以及详细的代码解释。 部分文字和代码来自《动手学深度学习》!! 目录多层感知机理论部分隐藏层多层感知机数学逻辑激活函数1. ReLU函数2. sigmoid函数3. tanh函数多层感知机的从零…...

python在windows调用svn-pysvn

作为EBS开发人员,开发工具用的多,部署代码类型多,管理程序麻烦,操作繁琐,一直是我最讨厌的事情。部署一次程序要使用好几个工具,改来改去,上传下载,实在难受。 扣了一下python&#…...

office365 word 另存为 pdf 的注意事项和典型设置

0. 操作环境介绍 Office 版本:Office 365 版本 不同版本的操作可能有所不同 1. 基本操作 – 另存为 pdf 【文件】 --> 【另存为】,选择适当的文件路径、文件名保存类型选择【PDF】点击【保存】 1. 导出的pdf包含目录标签 word中,可使用…...

Spring IoC容器之常见常用注解以及注解编程模型简介

一、全文概览 本篇文章主要学习记录Spring中的核心注解,罗列常见常用的注解以及Spring中的注解编程模型介绍 二、核心注解 1、Spring模式注解 常用注解场景描述Spring起始支持版本Component通用组件模式注解,是所有组件类型注解的元注解Spring 2.5Repo…...

超详细讲解文件函数

超详细讲解文件函数!!!!字符输入/输出函数fgetcfputc文本行输入/输出函数fgetsfputs格式化输入/输出函数fscanffprintf二进制输入/输出函数freadfwrite打开/关闭文件函数fopenfclose字符输入/输出函数 fgetc fgetc函数可以从指定…...

【挣值分析】

名称解释 拼写解释PV计划费用,预估预算EV挣值,实际预估预算AC实际费用,实际花费CV成本偏差 (EV - AC)SV进度偏差(EV - PV)CPI成本绩效指数 (EV / AC)SPI进度绩效指数 &a…...

Python3-基础语法

Python3 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -*-上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码&…...

【计算机网络】数据链路层(下)

文章目录媒体接入控制媒体接入控制-静态划分信道随机接入 CSMACD协议随机接入 CSMACA协议MAC地址MAC地址作用MAC地址格式MAC地址种类MAC地址的发送顺序单播MAC地址广播MAC地址多播MAC地址随机MAC地址IP地址区分网络编号IP地址与MAC地址的封装位置转发过程中IP地址与MAC地址的变…...

系统分析师考试大纲

系统分析师考试大纲 1.考试目标 通过本考试的合格人员应熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制订项目开发计划,协调信息系统开发与运行所涉及的各类人员;能指导制…...

2023上半年软考报名时间已定,你准备好了吗?

港城软考公众号于2023年2月17日发布了2023年度计算机软考工作计划,从该计划内容得知,2023年计算机软考上半年报名3月13日开始,请相关报考人员提前做好报名准备工作。 ​其他各省市还暂未公布2023上半年软考报名时间,每年都有很多…...

DPDK — Userspace PMD 源码分析

目录 文章目录目录PMD driver 通过 IGB_UIO 与 UIO 进行交互注册一个 UIO 设备PMD 的应用层实现PMD 同样支持中断处理方式PMD driver 通过 IGB_UIO 与 UIO 进行交互 IGB_UIO 内核模块的另一个主要功能就是让用于态的 PMD 网卡驱动程序得以与 UIO 进行交互。对于 PMD 的实现来说…...

javase基础学习(终)

9、网络通信协议 /* InetAddress类的常用方法 1、getLocalHost()public static InetAddress getLocalHost() throws UnknownHostException返回本地主机的地址。 这是通过从系统检索主机的名称,然后将该名称解析为InetAddress 。2、getByName()public static InetAd…...

Scala

1、Scala语言有什么特点?什么是函数式编程?有什么优点? 1、scala语⾔集成⾯向对象和函数式编程 2、函数式编程是⼀种典范,将电脑的运算视作是函数的运算 3、与过程化编程相⽐,函数式编程⾥的函数计算可以随时调⽤&…...

《数据分析方法论和业务实战》读书笔记

《数据分析方法和业务实战》读书笔记 共9章:前两章入门,3-7章介绍基本方法,8章从项目实战介绍数据分析,9章答疑常见问题。 1 数据分析基础 数据分析的完整流程 数据-》信息-〉了解现状-》发现原因-〉获取洞察-》问题机会-〉驱动…...

华为OD机试 - 射击比赛(Python)

射击比赛 题目 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高三个分数之和进行降序排名 输出降序排名后的选手 ID 序列 条件如下: 一个选手可以有多个射击成绩的分数 且次序不固定如果一个选手成绩小于三个 则认为选手的所有成绩无效 排名忽…...

uniapp自定义验证码输入框,隐藏光标

一. 前言 先看下使用场景效果图: 点击输入框唤起键盘,蓝框就相当于input的光标,验证码输入错误或者不符合格式要求会将字体以及边框改成红色提示,持续1s,然后清空数据,恢复原边框样式;5位验证…...

基于SSM框架的生活论坛系统的设计与实现

基于SSM框架的生活论坛系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景…...

spring注解使用中常见的概念性问题

Spring注解使用中常见的概念性问题Configuration有什么用?Configuration和XML有什么区别?哪种好?Autowired 、 Inject、Resource 之间有什么区别?Value、PropertySource 和 Configuration?Spring如何处理带Configurati…...

Module理解及使用

ES6的模块化设计思想是静态化,也就是说,在编译的时候确定模块的依赖关系,以及输出输出入的变量。而CommonJS和AMD模块都是在运行时确定的。ES6的模块不是对象,而是通过export显示指定输出的代码,再通过import命令输入。…...

ngix 常用配置之 location 匹配规则

大家好,我是 17。 今天和大家详细聊聊 nginx 的 location 匹配规则 location 匹配规则 匹配规则在后面的 try_files 中有举例 location 按如下优先级匹配 绝对匹配,一个字符也不能差^~ 前缀匹配~(区分大小写), ~*(不…...

chatGPT与人形机器人,高泽龙接受中国经营报采访谈二者发展

1.相较于Chatgpt,人形机器人的市场前景有多大?答:人形机器人的市场前景可以用“无限大”来形容,这看起来很夸张而且并不合理,其实是客观而且中肯的。因为这个问题就仿佛是五十年前,人们问“未来的电脑市场有…...

进程同步——读者-写者问题

读者-写者问题 互斥制约与合作制约双重关系的进程同步问题描述是: 一个被多个进程共享的文件、记录或数据结构,允许进程对其执行读、写操作。读进程称为读者,写进程称为写者。其允许多个进程同时读取,但只要有一个进程在读&#…...

Android自动化配置

1 搭建APPIUM环境 1.1 安装node.js Appium是使用nodejs实现的,所以node是解释器,需要第一步安装好 node.js的安装包下载地址: https://nodejs.org/en/download/ 注意:node.js的安装包的下载在官网有两种版本,建议大…...

Java程序怎么运行?final、static用法小范围类型转大范围数据类型可以吗?

文章目录1.能将int强制转换为byte类型的变量吗?如果该值大于byte类型的范围,将会出现什么现象?2. Java程序是如何执行的?3.final 在 Java 中有什么作用?4.final有哪些用法?5.static都有哪些用法?1.能将int强制转换为…...

【数据管理】谈谈哈希原理和散列表

一、说明 提起哈希,有人要说:不就是一个稀疏表格么,谈的上什么原理?我说:非也,哈希是是那种看似无物,其实解决大问题的东西。如何提高数据管理效率?这是个问题,随着这个问…...

浙江工业大学关于2023年MBA考试初试成绩查询及复试阶段说明

根据往年的情况,2023浙江工业大学MBA考试初试成绩可能将于2月21日公布,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。 1、初试成绩查询:考生可登录中国研究生招生信息网“全国硕士研究生招生考…...

08:进阶篇 - CTK 插件元数据

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 元数据 元数据用于准确描述一个插件的特征,这样才能让 CTK Plugin Framework 适当地对 Plugin 进行各种处理(例如:依赖解析)。 CTK Plugin Framework 本身提供了一些清单头(元数据属性、条目),在 c…...