【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

相关推荐
FreakStudio10 分钟前
0 元学嵌入式 GUI!保姆级 LVGL+MicroPython 教程开更,从理论到实战全搞定
python·单片机·嵌入式·面向对象·电子diy
程序员夏末2 小时前
【LeetCode | 第七篇】算法笔记
笔记·算法·leetcode
剑穗挂着新流苏3122 小时前
117_PyTorch 实战:利用训练好的模型进行单张图片验证
人工智能·python·深度学习
开源盛世!!2 小时前
3.23-3.25笔记
笔记
Lethehong3 小时前
Python Selenium全栈指南:从自动化入门到企业级实战
python·selenium·测试工具·自动化
智算菩萨3 小时前
MP3音频编码原理深度解析与Python全参数调优实战:从心理声学模型到LAME编码器精细控制
android·python·音视频
qq_452396234 小时前
【模型手术室】第四篇:全流程实战 —— 使用 LLaMA-Factory 开启你的第一个微调任务
人工智能·python·ai·llama
hanlin034 小时前
刷题笔记:力扣第43、67题(字符串计算)
笔记·算法·leetcode
无心水4 小时前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理
多看书少吃饭4 小时前
Vue + Java + Python 打造企业级 AI 知识库与任务分发系统(RAG架构全解析)
java·vue.js·笔记