【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

相关推荐
黑客-雨7 分钟前
从零开始:如何用Python训练一个AI模型(超详细教程)非常详细收藏我这一篇就够了!
开发语言·人工智能·python·大模型·ai产品经理·大模型学习·大模型入门
Pandaconda11 分钟前
【Golang 面试题】每日 3 题(三十九)
开发语言·经验分享·笔记·后端·面试·golang·go
孤独且没人爱的纸鹤20 分钟前
【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构
人工智能·python·深度学习·机器学习·支持向量机·ai·聚类
l1x1n024 分钟前
No.35 笔记 | Python学习之旅:基础语法与实践作业总结
笔记·python·学习
是Dream呀1 小时前
Python从0到100(八十五):神经网络-使用迁移学习完成猫狗分类
python·神经网络·迁移学习
小林熬夜学编程1 小时前
【Python】第三弹---编程基础进阶:掌握输入输出与运算符的全面指南
开发语言·python·算法
hunter2062063 小时前
用opencv生成视频流,然后用rtsp进行拉流显示
人工智能·python·opencv
Johaden5 小时前
EXCEL+Python搞定数据处理(第一部分:Python入门-第2章:开发环境)
开发语言·vscode·python·conda·excel
小虎牙^O^6 小时前
2024春秋杯密码题第一、二天WP
python·密码学
dal118网工任子仪6 小时前
66,【6】buuctf web [HarekazeCTF2019]Avatar Uploader 1
笔记·学习