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

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

本文通过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 相关产品和应用

全部下载

专题列表