爬虫入门学习(三)请求headers处理

2024-03-12 14:20

本文主要是介绍爬虫入门学习(三)请求headers处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

有时候请求一个网页的时候,无论是GET请求还是POST请求都访问不了,并出现403错误。这是因为这些网页为了防止恶意采集信息,使用了反爬机制。

正文 

1、都什么原因会出现403错误呢?

403错误是指访问被服务器拒绝的错误。这可能是因为用户请求的资源被服务器禁止访问,或者用户没有足够的权限来访问资源。

有几个可能的原因导致403错误:

  1. 权限不足:用户没有足够的权限来访问资源。这可能是因为用户没有提供正确的身份验证凭证,或者用户所属的用户组没有访问该资源的权限。

  2. IP地址被拒绝:服务器可以配置为拒绝某些IP地址或IP地址范围的访问。

  3. 文件或目录权限不正确:服务器上的文件或目录的权限设置不正确,导致用户无法访问。

2、如何发送GET请求?

import requests	# 导入requests模块
response = requests.get('https://www.csdn.net/?spm=1030.2210.3001.4476')

 3、如何发送POST请求?

import requests
response = requests.post("https://www.csdn.net/?spm=1030.2210.3001.4476")
print(response.content)

8ee0a16640d648579f8ac4de5f921898.png

403了哈哈ha😀ha 

GET请求和POST请求的区别:

get请求是安全的。get请求是绝对安全的。因为get请求只是为了从服务器上获取数据。不会对服务器造成威胁。

post请求是危险的。因为post请求是向服务器提交数据,如果这些数据通过后门的方式进入到服务器当中,服务器是很危险的。另外post是为了提交数据,所以一般情况下拦截请求的时候,大部分会选择拦截(监听)post请求。

使用请求头部headers处理

1、打开浏览器

2、按下“Ctrl+Shift+E” 出现下面界面:

40013ddccea544308962b90b018ebb96.png 3、点击蓝色的部分,找到头部信息b687d17ffeaa49f7b0737406e903b03a.png

要的就是右下角的“'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0'”

import requests# 请求的URL
url = 'https://www.csdn.net/?spm=1030.2210.3001.4476'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0'}
# 请求的数据
data = {'name': '后端'
}
# 发送POST请求
response = requests.post(url, data=data,headers=header)
# 打印响应内容
print(response.text)

 e3c6278d98de442b9379e08a064146fd.png

这回变成405了哈哈,所以我们得用GET了:

import requests# 请求的URL
url = 'https://www.csdn.net/?spm=1030.2210.3001.4476'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0'}
# 请求的数据
data = {'name': 'pp'
}
# 发送POST请求
response = requests.get(url, data=data,headers=header)
# 打印响应内容
print(response.text)

4e48e9065ecc487dbf1098430b68c6fb.png

 

这篇关于爬虫入门学习(三)请求headers处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/801547

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer