当前位置: 首页 > news >正文

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

一、概述

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

二、在网络爬虫中的作用

1.发送请求

  • 简单请求发送:在网络爬虫中,最常见的操作是获取网页内容。使用requests.get()方法可以轻松地向目标网址发送GET请求。例如,如果想要获取某个新闻网站的首页内容,可以这样写:
import requests
response = requests.get('https://news.example.com')
print(response.text)
  • 带参数请求:对于一些需要传递参数的网页,如搜索结果页面,requests库可以通过params参数来构建带有查询参数的GET请求。假设要在一个电商网站上搜索特定商品,代码可以这样写:
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表示页面未找到。
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参数来模拟浏览器发送请求。
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

http://www.lryc.cn/news/495627.html

相关文章:

  • Linux网络_网络协议_网络传输_网络字节序
  • 浅谈网络 | 应用层之流媒体与P2P协议
  • css vue vxe-text-ellipsis table 实现多行文本超出隐藏省略
  • 基于hexo框架的博客搭建流程
  • 数据结构-简单排序
  • 三十一:HTTP多种重定向跳转方式的差异
  • 利用Python爬虫精准获取淘宝商品详情的深度解析
  • 架构师的英文:Architect
  • 数据结构 ——— 计数排序算法的实现
  • k8s搭建Istio环境,案例pod一直处在Init:CrashLoopBackOff
  • Jenkins升级到最新版本后无法启动
  • 用户界面创建一个新的运动类型
  • ubuntu防火墙入门(一)——设置服务、关闭端口
  • 分治算法——二分查找(c++)(详解)
  • Binder架构
  • 大数据治理:解锁数据价值,引领未来创新
  • 解决windows下php8.x及以上版本,在Apache2.4中无法加载CURL扩展的问题
  • 【韩顺平老师Java反射笔记】
  • Arrays.asList()新增报错,该怎么解决
  • 【热门主题】000072 分布式数据库:开启数据管理新纪元
  • 基于Springboot开发的云野旅游平台
  • 2024金盾信安杯线上赛 MISC ezpng[wp]
  • 搭建业务的性能优化指南
  • 电脑提示报错“Directx error”怎么解决?是什么原因导致的?游戏软件提示“Directx error”错误的解决方案
  • Linux——自定义简单shell
  • 基于matlab程序实现人脸识别
  • Unity跨平台基本原理
  • 【前端开发】小程序无感登录验证
  • Flink常见面试题
  • spark同步mysql数据到sqlserver