【愚公系列】《Python网络爬虫从入门到精通》007-请求模块requests高级应用(Reguests-HTML)

标题详情
作者简介愚公搬代码
头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
博客内容.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎👍点赞、✍评论、⭐收藏

文章目录

  • 🚀前言
  • 🚀一、请求模块requests高级应用(Reguests-HTML)
    • 🔎1.概述
    • 🔎2.安装与基础使用
      • 🦋2.1 安装命令
      • 🦋2.2 发送 GET 请求
      • 🦋2.3 发送 POST 请求
    • 🔎3.请求头管理
      • 🦋3.1 自定义请求头
      • 🦋3.2 生成随机请求头
    • 🔎4.数据提取方法
      • 🦋4.1 CSS 选择器
      • 🦋4.2 XPath 选择器
    • 🔎5.实战案例:爬取即时新闻
    • 🔎6.动态数据加载(JavaScript 渲染)
      • 🦋6.1 使用 `render()` 方法
    • 🔎7.高级数据提取技巧
      • 🦋7.1 使用 `find()` 方法与 `containing` 参数
      • 🦋7.2 `search()` 与 `search_all()`
    • 🔎8.注意事项


🚀前言

在当今数据驱动的时代,网络爬虫和数据采集变得越来越重要。Python作为一门强大的编程语言,其requests库因其简单易用而广受欢迎,但在处理复杂的网页内容时,单靠requests可能并不足够。这时候,Requests-HTML模块的出现,为我们提供了更为强大的工具,使得抓取和解析网页变得更加高效和便捷。

Requests-HTML是基于requests库构建的,它不仅支持简单的HTTP请求,还具备强大的HTML解析功能,能够轻松处理动态内容和JavaScript渲染的页面。在本期文章中,我们将深入探讨Requests-HTML的各种高级应用,涵盖如何快速抓取网页、解析数据、处理复杂的HTML结构等实用技巧。无论你是数据分析师、爬虫开发者,还是对网页数据提取感兴趣的学习者,掌握Requests-HTML都将为你的项目增添无限可能。

🚀一、请求模块requests高级应用(Reguests-HTML)

🔎1.概述

  • 模块关系:Requests-HTML 是 requests 的扩展模块,由同一开发者维护。
  • 核心功能
    • 支持 JavaScript 动态渲染
    • 集成数据提取(CSS/XPath 选择器)
    • 模拟真实浏览器行为
    • 包含 requests 所有功能

🔎2.安装与基础使用

🦋2.1 安装命令

pip install requests-html

🦋2.2 发送 GET 请求

from requests_html import HTMLSessionsession = HTMLSession()          # 创建会话对象
url = 'http://news.youth.cn/'
r = session.get(url)            # 发送 GET 请求
print(r.html.url)                # 输出请求地址

在这里插入图片描述

🦋2.3 发送 POST 请求

from requests_html import HTMLSessionsession = HTMLSession()
data = {'user':'admin', 'password':123456}
r = session.post('http://httpbin.org/post', data=data)if r.status_code == 200:print(r.text)  # 返回结果包含表单数据和浏览器级 User-Agent

在这里插入图片描述

🔎3.请求头管理

🦋3.1 自定义请求头

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
r = session.post(url, data=data, headers=headers)

🦋3.2 生成随机请求头

from requests_html import HTMLSession,UserAgent    # 导入HTMLSession类session = HTMLSession()          # 创建HTML会话对象
ua = UserAgent().random          # 创建随机请求头
r = session.get('http://httpbin.org/get',headers = {'user-agent': ua})
if r.status_code == 200:         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【虚幻引擎UE】UE4.23到UE5.5的核心功能变化

简单总结从UE4.23到UE5.5,虚幻引擎的重大变化: 1. WebGL/HTML5 平台支持和像素流 UE4.23-UE4.25:移除官方HTML5支持,改为社区插件维护。 但通过第三方插件(如WebAssemblyWebGPU)可在浏览器运行部分项目。U…

win10 离线安装openssh.server

在 Windows 10 上离线安装 OpenSSH Server 可以通过手动安装的方式来达成,因为 OpenSSH 默认并不包含在 Windows 10 的可选功能中。以下是一些步骤来帮助你手动安装 OpenSSH Server: 方法一:使用 PowerShell 安装 启用管理员权限的 PowerShe…

在Vue中,JavaScript数组常用方法,添加,插入,查找,删除等整理

在Vue中,JavaScript数组常用,添加,插入,查找,删除等整理 1.splice()方法可以直接修改原数组,通过指定要删除元素的索引来删除它。 例: let index // 要删除的元素的索引; this.array.splice(i…

【AI论文】CodeI/O: 通过代码输入输出预测来提炼推理模式

摘要:推理是大型语言模型的一项基本能力。尽管先前的研究主要集中在提升如数学或代码生成等狭窄领域的技能,但由于训练数据稀疏且分散,在许多其他推理任务上提高性能仍然具有挑战性。为了解决这个问题,我们提出了CodeI/O&#xff…

AI编程01-生成前/后端接口对表-豆包(或Deepseek+WPS的AI

前言: 做过全栈的工程师知道,如果一个APP的项目分别是前端/后端两个团队开发的话,那么原型设计之后,通过接口文档进行开发对接是非常必要的。 传统的方法是,大家一起定义一个接口文档,然后,前端和后端的工程师进行为何,现在AI的时代,是不是通过AI能协助呢,显然可以…

热更图片方案

项目平常需要对线上一些图片资源修正,所以需要热更图片功能。 远端入口新增字段配json文件 {"1.1.22030303":{"sprite":{"assets/ui/common/images/acient_gold.png" : "https://aaaa.png","assets/ui/common/image…

24电子信息类研究生复试面试问题汇总 电子信息类专业知识问题最全!电子信息复试全流程攻略 电子信息考研复试真题汇总

你是不是在为电子信息考研复试焦虑?害怕被老师问到刁钻问题、担心专业面答不上来?别慌!作为复试面试92分逆袭上岸的学姐,今天手把手教你拆解电子信息类复试通关密码!看完这篇,让你面试现场直接开大&#xf…

PortSwigger——WebSockets vulnerabilities

文章目录 一、WebSockets二、Lab: Manipulating WebSocket messages to exploit vulnerabilities三、Lab: Manipulating the WebSocket handshake to exploit vulnerabilities四、Using cross-site WebSockets to exploit vulnerabilities4.1 跨站WebSocket劫持(cro…

Dockerfile 详解:构建自定义镜像

Dockerfile 是一种文本文件,包含了一系列指令,用于描述如何构建一个 Docker 镜像。通过 Dockerfile,我们可以将应用程序及其所有依赖打包成镜像,确保应用在不同环境中运行时保持一致性。掌握 Dockerfile 的写法和最佳实践,能够帮助我们高效地构建和管理容器镜像。 本文将…

机器视觉中的3d和2d的区别

在机器视觉中,3D和2D的主要区别体现在数据的维度、处理方式及应用场景上。以下是具体对比: 数据维度 2D视觉 :处理二维图像,仅包含宽度和高度信息,通常以像素矩阵表示。 3D视觉 :处理三维数据,…

日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(5):動詞ます形 > 動詞ない形

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(5):動詞ます形 > 動詞ない形 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)動詞ます形 > 動詞ない形(2)~ないでください:(3)指带词(指示代词):こ そ あ ど3、单词(1)日语单词(2)日语…

Sonic Layer1

礼记有言:良冶之子,必学为裘;良弓之子,必学为箕; 闲来无趣,看看Sonic 的官方文档吧。道听途殊终归了解的不够全面。 首先,看Sonic 是如何介绍自己的: 哇趣,Sonic 把自己的…

C#数据库操作系列---SqlSugar完结篇

1. 不同寻常的查询 之前介绍了针对单个表的查询,同样也是相对简单的查询模式。虽然开发完全够用,但是难免会遇到一些特殊的情况。而下面这些方法就是为了解决这些意料之外。 1.1 多表查询 SqlSugar提供了一种特殊的多表查询方案,使用IQuer…

Pygame: joystick 模块使用示例

pygame几乎可以识别任意外接游戏操纵设备。 游戏手柄上的每个操作都会形成一个电信号被joystick类对象捕获到, joystick把这个信号归一化到[-1,1]区间,或者离散化为{0,1}。 以下程序创建一个弹出窗口,实时显示joystick捕获到的信号数值&…

html css js网页制作成品——HTML+CSS+js茉酸奶的茶网页设计(5页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…

在vscode中拉取gitee里的项目并运行

拉取项目: 方法一:vscode点击查看--->终端(或者直接通过快捷键ctrol+ `打开) 在终端内通过cd命令定位到你想存放项目的文件夹 例如:cd h: 通过命令:git clone 地址 例如:git clone newbee-mall-vue-app: 前端代码 等待拉取完成即可在对应文件夹下看到项目啦 方…

常见的缓存更新策略

Cache Aside Pattern(旁路缓存模式) Cache Aside Pattern 是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。 读写步骤 写: 更新DB删除缓存 读: 缓存读数据,读到直接返回未读取到直接从db读取db读取的数据同…

QT无弹窗运行和只允许运行一个exe

最近做一个小功能&#xff0c;需要后台运行QT程序&#xff0c;无弹窗&#xff0c;并且只允许一个exe运行&#xff0c;不关闭程序&#xff0c;无法2次启动。 main.cpp #include "deleteshotcurveflie.h" #include <QApplication> #include <QSharedMemory&…

cap2:1000分类的ResNet的TensorRT部署指南(python版)

文章目录 1、保存pytorch模型1.1 获取pth模型1.2 建立标杆 2、导出ONNX2.1 导出模型2.2 验证模型2.3 可视化模型结构 3、环境搭建3.1 TensorRT的安装3.2 安装pycuda 4、转换TensorRT引擎4.1 使用trtexec工具完成序列化4.2 使用python的API进行转换 5、推理5.1 推理代码5.2 结果…

Day82:创建图形界面(GUI)

在 Python 中,我们可以使用 Tkinter(标准 GUI 库)来创建图形用户界面(GUI)。Tkinter 提供了一系列工具和控件,使开发者可以轻松地创建窗口、按钮、输入框等界面组件。 1. Tkinter 简介 Tkinter 是 Python 内置的 GUI 库,使用它可以创建窗口应用程序,而无需安装额外的库…