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

【愚公系列】《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 HTMLSession

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

在这里插入图片描述

🦋2.3 发送 POST 请求

from requests_html import HTMLSession

session = 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.kler.cn/a/544597.html

相关文章:

  • Kubernetes部署OwnCloud网盘服务
  • 基于javaweb的SpringBoot+MyBatis健身房信息管理系统(源码+文档+部署讲解)
  • 深入理解DeepSeek与企业实践(二):32B多卡推理的原理、硬件散热与性能实测
  • 06:串口通信
  • python使用虚拟环境
  • Python 依赖管理的革新——Poetry 深度解析
  • C# Dictionary的实现原理
  • 走进 Tcl 语言:历史、特性与应用
  • 数据结构:图论入门
  • JavaSE基本知识补充 -IO流
  • DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)
  • post、get、delete、put请求
  • cnn以及例子
  • AI时代前端工程师的职业发展新路径
  • IS-IS 泛洪机制 | LSP 处理流程
  • 【Unity3D杂谈】使用NDK命令行工具翻译Android Vitals上的内存堆栈
  • 如何部署DeepDeepSeek-V3 大模型部署全流程解析:从云平台到本地化实践Seek—V3
  • OpenAI推出全新AI助手“Operator”:让人工智能帮你做事的新时代!
  • ConcurrentHashMap扩容
  • Spring Boot 中的事务管理:默认配置、失效场景及集中配置