Python爬虫实战:10个requests库基础操作与反爬技巧

小石头
小石头
发布时间:2026-10-14| 4人浏览过
原创

本文通过10个Python爬虫实例,详解requests库的get、post、put方法及其传参技巧。内容涵盖环境安装、响应对象处理、编码设置、文件保存及图片抓取,并演示如何通过修改User-Agent绕过知乎的反爬机制,适合初学者快速掌握网络数据采集基础。

Python爬虫入门概述

昨日与初学者共同学习了Python爬虫技术,并准备了若干基础入门案例供参考。

这些案例主要涉及以下核心知识点:

  1. Web交互的基本原理
  2. requests库中get与post函数的具体应用
  3. response对象的相关函数与属性使用
  4. Python文件的打开、读写与保存操作

代码中已添加详细注释,确保可以直接运行测试。

requests库安装指南

关于requests库的安装方法(已配置Python环境的用户可直接参考,未安装Python环境的用户建议先完成Python环境搭建)。

Windows与Linux用户的安装步骤基本一致:

在Windows系统中,打开cmd命令行输入相应命令即可。若Python安装在C盘目录导致权限不足,请以管理员身份运行cmd窗口。


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

Linux用户(以Ubuntu为例)操作类似,若遇到权限不足,可在命令前添加sudo执行。


sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

基础HTTP请求方法演示

实例1:爬取百度首页并打印页面信息。


# 第一个爬虫示例,爬取百度页面

import requests #导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://www.baidu.com") #生成一个response对象

response.encoding = response.apparent_encoding #设置编码格式

print("状态码:"+ str( response.status_code ) ) #打印状态码

print(response.text)#输出爬取的信息

实例2:展示常用的get方法,后续包含传参示例。


# 第二个get方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://httpbin.org/get") #get方法

print( response.status_code ) #状态码

print( response.text )

实例3:展示常用的post方法,后续包含传参示例。


# 第三个 post方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.post("http://httpbin.org/post") #post方法访问

print( response.status_code ) #状态码

print( response.text )

实例4:展示put方法的使用。


# 第四个 put方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.put("http://httpbin.org/put") # put方法访问

print( response.status_code ) #状态码

print( response.text )

GET与POST传参技巧

实例5:get方法传参示例(1)。

如需传递多个参数,可使用&符号连接,如下所示:


# 第五个 get传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://httpbin.org/get?name=hezhi&age=20") # get传参

print( response.status_code ) #状态码

print( response.text )

实例6:get方法传参示例(2)。

使用字典形式的params参数可以更方便地传递多个值。


# 第六个 get传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

data = {
	"name":"hezhi",
	"age":20
}
response = requests.get( "http://httpbin.org/get" , params=data ) # get传参

print( response.status_code ) #状态码

print( response.text )

实例7:post方法传参示例(2),其结构与上一个示例相似。


# 第七个 post传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

data = {
	"name":"hezhi",
	"age":20
}
response = requests.post( "http://httpbin.org/post" , params=data ) # post传参

print( response.status_code ) #状态码

print( response.text )

反爬机制与数据保存实战

实例8:关于绕过反爬机制的演示,以知乎为例。


# 第好几个方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get( "http://www.zhihu.com") #第一次访问知乎,不设置头部信息

print( "第一次,不设头部信息,状态码:"+response.status_code )# 没写headers,不能正常爬取,状态码不是 200

#下面是可以正常爬取的区别,更改了User-Agent字段

headers = {

		"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"

}#设置头部信息,伪装浏览器

response = requests.get( "http://www.zhihu.com" , headers=headers ) #get方法访问,传入headers参数,

print( response.status_code ) # 200!访问成功的状态码

print( response.text )

实例9:抓取信息并保存至本地。由于目录限制,在D盘创建了名为“爬虫”的文件夹用于存储信息。

请注意文件保存时的encoding编码设置。


# 爬取一个html并保存

import requests

url = "http://www.baidu.com"

response = requests.get( url )

response.encoding = "utf-8" #设置接收编码格式

print("\nr的类型" + str( type(response) ) )

print("\n状态码是:" + str( response.status_code ) )

print("\n头部信息:" + str( response.headers ) )

print( "\n响应内容:" )

print( response.text )

#保存文件
file = open("D:\\爬虫\\baidu.html","w",encoding="utf") #打开一个文件,w是文件不存在则新建一个文件,这里不用wb是因为不用保存成二进制

file.write( response.text )

file.close()

实例10:抓取图片并保存至本地。


#保存百度图片到本地

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("https://www.baidu.com/img/baidu_jgylogo3.gif") #get方法的到图片响应

file = open("D:\\爬虫\\baidu_logo.gif","wb") #打开一个文件,wb表示以二进制格式打开一个文件只用于写入

file.write(response.content) #写入文件

file.close()#关闭操作,运行完毕后去你的目录看一眼有没有保存成功

至此,关于10个Python爬虫入门实例的总结介绍完毕。如需了解更多Python爬虫相关内容,请搜索本站往期文章或继续浏览后续文章,感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。