【Python网络爬虫笔记】6- 网络爬虫中的Requests库

一、概述

Requests 是一个用 Python 语言编写的、简洁且功能强大的 HTTP 库。它允许开发者方便地发送各种 HTTP 请求,如 GET、POST、PUT、DELETE 等,并且可以轻松地处理请求的响应。这个库在 Python 生态系统中被广泛使用,无论是简单的网页数据获取,还是复杂的网络服务交互场景都能发挥作用。

二、在网络爬虫中的作用

1.发送请求

  • 简单请求发送:在网络爬虫中,最常见的操作是获取网页内容。使用requests.get()方法可以轻松地向目标网址发送GET请求。例如,如果想要获取某个新闻网站的首页内容,可以这样写:
python 复制代码
import requests
response = requests.get('https://news.example.com')
print(response.text)
  • 带参数请求:对于一些需要传递参数的网页,如搜索结果页面,requests库可以通过params参数来构建带有查询参数的GET请求。假设要在一个电商网站上搜索特定商品,代码可以这样写:
python 复制代码
import requests
params = {'keyword': 'laptop'}
response = requests.get('https://ecommerce.example.com/search', params = params)
print(response.url)  
print(response.text)

这样就可以获取到包含 "laptop" 关键词的搜索结果页面内容。

2.处理响应

  • 状态码检查:在网络爬虫中,需要检查请求是否成功。requests库返回的响应对象有一个status_code属性,可以用来判断请求的状态。例如,200表示请求成功,404表示页面未找到。
python 复制代码
import requests
response = requests.get('https://news.example.com')
if response.status_code == 200:
    print("请求成功")
else:
    print("请求出现问题,状态码:", response.status_code)
  • 获取内容:可以通过response.text属性获取网页的文本内容(例如 HTML 代码),用于后续的解析工作。如果网页返回的是二进制数据(如图片、文件等),可以使用response.content属性获取字节流数据。

3. 模拟浏览器行为

  • 很多网站会根据请求头中的User - Agent等信息来判断请求是否来自合法的浏览器。requests库可以通过设置headers参数来模拟浏览器发送请求。
python 复制代码
import requests
headers = {'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/91.0.4472.124 Safari/537.36'}
response = requests.get('https://news.example.com', headers = headers)
print(response.text)

这样就可以让服务器认为请求是来自浏览器,从而避免一些因为请求被识别为非浏览器请求而导致的访问限制。

详见案例:抓取豆瓣电影数据:
https://blog.csdn.net/zi__you/article/details/144144052?fromshare=blogdetail&sharetype=blogdetail&sharerId=144144052&sharerefer=PC&sharesource=zi__you&sharefrom=from_link

相关推荐
爱笑的眼睛111 小时前
超越MSE与交叉熵:深度解析损失函数的动态本质与高阶设计
java·人工智能·python·ai
zhdy567892 小时前
最简单方法 设置matlab坐标轴刻度标签的字号,设置坐标轴标题和图形标题,并指定字号。画出的图片背景设置为白色,
笔记
崇山峻岭之间2 小时前
Matlab学习笔记02
笔记·学习·matlab
木木em哈哈2 小时前
C语言多线程
笔记
Rose sait2 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
过期动态3 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
一世琉璃白_Y3 小时前
pg配置国内数据源安装
linux·python·postgresql·centos
liwulin05063 小时前
【PYTHON】COCO数据集中的物品ID
开发语言·python
小鸡吃米…3 小时前
Python - XML 处理
xml·开发语言·python·开源
冰敷逆向3 小时前
苏宁滑块VMP深入剖析(一):解混淆篇
javascript·爬虫·安全·web