Python笔记:网络爬虫之XPath、Beautiful Soup、PyQuery的使用

解析库的使用(XPath,BeautifulSoup, pyquery) 解析库的使用(XPath,BeautifulSoup, pyquery),从崔庆才的《Python3网络开发实战》上总结而来。 立即下载

网络爬虫解析库的引入

  1. 之前基于正则,比较繁琐,出错率较高
  2. 爬取信息大多基于html结构的web页面, 网页节点较多,各种层级关系

常见的Python解析库

  1. XPath: 基于XML文档,包含html查找功能 官方文档
  2. Beautiful Soup 依赖于lxml的解析库 官方文档
  3. PyQuery Python仿照jQuery严格实现 官方文档

通用的html模板文件

index.html

<!DOCTYPE html>
<html>
<head>
    <title>我的水果摊</title>
</head>
<body>
    <h3 id="title">我的水果</h3>
    <ul>
        <li class="item-0"><a class="onea" href="http://www.test1.com">橘子</a></li>
        <li class="item-1 shop"><a href="http://www.test2.com">橙子</a></li>
        <li class="item-2"><a href="http://www.test3.com">苹果</a></li>
        <li class="item-3"><a href="http://www.test4.com">樱桃</a></li>
        <li class="item-4 shop"><a href="http://www.test5.com">梨子</a></li>
    </ul>
</body>
</html>

关于 XPath 的使用

1)安装相关库

$ pip3 install lxml

2)进行解析处理

# 导入模块
from lxml import etree

# 读取html文件信息
f = open("./index.html",'r',encoding="utf-8")
content = f.read()
f.close()

# 解析HTML文档,返回根节点对象
html = etree.HTML(content)
#print(html)  # <Element html at 0x103534c88>

# 获取网页中所有标签并遍历输出标签名
result = html.xpath("//*")
for t in result:
    print(t.tag, end=" ")
#[html head title body h3 ul li a li a ...]
print()

# 获取节点
result = html.xpath("//li") # 获取所有li节点
result = html.xpath("//li/a") # 获取所有li节点下的所有直接a子节点
result = html.xpath("//ul//a") # 效果同上(ul下所有子孙节点)
result = html.xpath("//a/..") #获取所有a节点的父节点
print(result)

# 获取属性和文本内容
result = html.xpath("//li/a/@href") #获取所有li下所有直接子a节点的href属性值
result = html.xpath("//li/a/text()") #获取所有li下所有直接子a节点内的文本内容
print(result) #['橘子', '橙子', '苹果', '樱桃', '梨子']

result = html.xpath("//li/a[@class]/text()") #获取所有li下所有直接含有class属性子a节点内的文本内容
print(result) #['橘子', '苹果', '樱桃']

#获取所有li下所有直接含有class属性值为aa的子a节点内的文本内容
result = html.xpath("//li/a[@class='aa']/text()") 
print(result) #['苹果', '樱桃']

#获取class属性值中含有shop的li节点下所有直接a子节点内的文本内容
result = html.xpath("//li[contains(@class,'shop')]/a/text()") 
print(result) #['苹果', '樱桃']

# 按序选择
result = html.xpath("//li[1]/a/text()") # 获取每组li中的第一个li节点里面的a的文本
result = html.xpath("//li[last()]/a/text()") # 获取每组li中最后一个li节点里面的a的文本
result = html.xpath("//li[position()<3]/a/text()") # 获取每组li中前两个li节点里面的a的文本
result = html.xpath("//li[last()-2]/a/text()") # 获取每组li中倒数第三个li节点里面的a的文本
print(result) 

print("--" * 10)

# 节点轴选择
result = html.xpath("//li[1]/ancestor::*") # 获取li的所有祖先节点
result = html.xpath("//li[1]/ancestor::ul") # 获取li的所有祖先中的ul节点
result = html.xpath("//li[1]/a/attribute::*") # 获取li中a节点的所有属性值
result = html.xpath("//li/child::a[@href='http://www.sohu.com']") #获取li子节点中属性href值的a节点
result = html.xpath("//body/descendant::a") # 获取body中的所有子孙节点a
print(result) 

result = html.xpath("//li[3]") #获取li中的第三个节点    
result = html.xpath("//li[3]/following::li") #获取第三个li节点之后所有li节点
result = html.xpath("//li[3]/following-sibling::*") #获取第三个li节点之后所有同级li节点
for v in result:
    print(v.find("a").text)

# 获取id属性为title的节点中的文本内容
print(html.xpath("//h3[@id='title']/text()")) #['我的水果']

# 获取li中所有超级链接a的信息
result = html.xpath("//li/a")
for t in result:
    # 通过xapth()二次解析结果
    #print(t.xpath("text()")[0], ':', t.xpath("@href")[0])
    # 效果同上,使用节点对象属性方法解析
    print(t.text, ':', t.get("href"))

'''
#结果:
橘子 : http://www.test1.com
橙子 : http://www.test2.com
苹果 : http://www.test3.com
樱桃 : http://www.test4.com
梨子 : http://www.test5.com
'''

'''
重点补充:)

HTML元素的属性:
    tag:元素标签名
    text:标签中间的文本
HTML元素的方法:
    find()    查找一个匹配的元素
    findall() 查找所有匹配的元素    
    get(key, default=None) 获取指定属性值
    items()获取元素属性,作为序列返回
    keys()获取属性名称列表
    value是()将元素属性值作为字符串序列
'''

关于 Beautiful Soup 的使用

1)安装相关库

$ pip3 install lxml
$ pip3 install beautifulsoup4

2)主要的解析器的优缺点:

  • Python标准库 | BeautifulSoup(markup, "html.parser") | Python的内置标准库,执行速度适中,文档容错能力强 | Python 2.7.3 or 3.2.2前的版本中文档容错能力差
  • lxml HTML 解析器 | BeautifulSoup(markup, "lxml") | 速度快 文档容错能力强 | 需要安装C语言库
  • lxml XML 解析器 | BeautifulSoup(markup, ["lxml-xml"]) BeautifulSoup(markup, "xml") | 速度快 唯一支持XML的解析器 | 需要安装C语言库
  • html5lib | BeautifulSoup(markup, "html5lib") | 最好的容错性,以浏览器的方式解析文档,生成HTML5格式的文档 | 速度慢、不依赖外部扩展

lxml解析器有解析html和xml的功能,而且速度快,容错能力强,比较推荐这个。

3)分析使用

# 导入模块
from bs4 import BeautifulSoup
import re

# 读取html文件信息
f = open("./index.html",'r',encoding="utf-8")
content = f.read()
f.close()

# 创建解析器
soup = BeautifulSoup(content,"lxml")

# 输出网页内容:此内容已被缩进格式化(自动更正格式),在上一步实例化时就已完成
# print(soup.prettify())

# 输出网页中title标签中的内容
# print(soup.title.string)

# 选择元素测试
'''
print(soup.title) # <title>我的水果摊</title>
print(type(soup.title)) # <class 'bs4.element.Tag'>
print(soup.head) # 获取整个head元素,及内部元素
print(soup.li) # 获取第一个li元素(后面其他li不会获取)<li class="item-0"><a href="http://www.test1.com">橘子</a></li>
'''

# 提取信息测试
'''
print(soup.a) #获取第一个a元素标签:<a href="http://www.test1.com">橘子</a>
print(soup.a.name)    #获取标签名: a
print(soup.a.attrs)    #获取所有属性:{'class': ['onea'], 'href': 'http://www.test1.com'}
print(soup.a.attrs['href']) #获取其中一个属性:http://www.test1.com
print(soup.a.string) # 获取元素标签中间的文本内容:橘子
'''

# 嵌套选择测试
'''
print(soup.li.a) #获取网页中第一个li中的第一个a元素节点 输出 <a class="onea" href="http://www.test1.com">橘子</a>
print(type(soup.body.h3))  ##获取body中的第一个h3元素的类型:<class 'bs4.element.Tag'>
print(soup.body.h3.string)  #获取body中的第一个h3中的文本内容: 我的水果
'''

# 关联选择测试
'''
# 子或子孙节点,以下获取的节点列表都可以使用for...in遍历
print(soup.ul.contents) #获取ul下面的所有直接子节点,返回列表
print(soup.ul.children) #获取ul下面的所有直接子节点,返回一个:<list_iterator object at 0x121786a20>

print(soup.ul.descendants) # 获取ul下的所有子孙节点。
for v in soup.ul.descendants:
    print("item:", v)

# 父祖节点
print(soup.a.parent.name) #通过parent属性获取a的父节点 li
print(list(soup.a.parents)) # 获取所有祖先节点

#兄弟节点
print(soup.li.next_siblings)    #获取指定li节点的所有后面的兄弟节点
print(soup.li.previous_siblings)#获取指定li节点的所有前面的兄弟节点
for v in soup.li.next_siblings:
    print(v)

print(soup.a.string) #获取a节点中的文本
print(soup.a.attrs['href']) # 或a节点的href属性值
'''

# 方法选择器测试 find_all
'''
# 通过name指定li值,获取所有li元素节点,返回列表
lis = soup.find_all(name="li")
# 通过attrs指定属性来获取所有元素节点
lis = soup.find_all(attrs={"class":"onea"})
lis = soup.find_all(class_="onea") #同上(class属性中包含就可以了)
lis = soup.find_all(class_="shop") #class属性值中包含shop的所有节点
lis = soup.find_all(id="title") #<h3 id="title">我的水果</h3>
# 通过文本内容获取
lis = soup.find_all(text='橘子') # 橘子
lis = soup.find_all(text=re.compile('我')) # 我的水果摊 我的水果
for i in lis:
    print(i)

'''

# 方法选择器测试 find
'''
# 获取一个li元素节点
lis = soup.find(name="li")
# 通过attrs指定属性来获取一个元素节点
lis = soup.find(attrs={"class":"onea"})
for i in lis:
    print(i)

'''

# CSS选择器测试

'''
print(soup.select("ul li a")) # 获取ul里面li下面的a元素节点
print(soup.select("#title")) # 获取id属性值为title的元素节点
print(soup.select("li.shop a")) # 获取class属性为shop的li元素里面所有的a元素节点

# 套用选择解析器
lis = soup.select("ul li")
for li in lis:
    a = li.select("a")[0] #获取每个li里面的a元素节点
    print(a)
    print(a['href']) # 获取属性href的值
    # print(a.attrs['href']) # 同上 获取属性值
    print(a.get_text()) 
    print(a.string) # 同上 获取元素节点的文本内容

'''

关于 PyQuery 的使用

1)安装相关库

$ pip3 install pyquery

2)测试

from pyquery import PyQuery as pq

# doc = pq(url="http://www.baidu.com", encoding="utf-8")
# print(doc('title'))

'''
# 推荐使用requests爬取信息
from pyquery import PyQuery as pq
import requests
res = requests.get("http://www.baidu.com")
res.encoding = "utf-8" # 原编码为ISO-8859-1
# print(res.text)
doc = pq(res.text)
print(doc("title"))
'''

doc = pq(filename='index.html', encoding="utf-8")
print(doc('title')) # 

print(doc('title')) # 通过html标签名获取元素节点
print(doc('#title'))  # 获取id属性值为title的元素节点
print(doc('.onea'))  # 获取class属性值为onea的元素节点
print(doc('title, h3')) # 选择符组的使用

print(doc("ul li.shop a")) #关联选择符的使用

print(doc("a")) # 获取所有a
print(doc("a:first")) # 获取第一个a
print(doc("a:last")) # 获取最后一个a
print(doc("a:lt(2)")) # 获取前连个a
print(doc("a:eq(2)")) # 获取索引位置2的a(第三个)

print(doc('a[href="http://www.test1.com"]')) # 获取指定属性值的节点

print("=" * 10)

# 节点的二次筛选:
lis = doc("ul li") #获取ul中所有的li
print(type(lis)) # <class 'pyquery.pyquery.PyQuery'>
print(lis.find("a.onea")) # 在结果的基础上再次查找
print(lis.children("a.onea")) # 在结果的基础上再次查找

print(doc("a.onea").parent()) # 获取指定元素的直接父节点
#print(doc("a.onea").parents()) # 获取指定元素的所有父节点
print(doc("a.onea").parent().siblings()) # 获取兄弟节点

print("=" * 10)

# 遍历:
alist = doc("a")
for a in alist.items():
    print(a.attr.href)
    #print(a.attr('href')) #同上
    print(a.text())  #获取内容
    print(a.html()) 

LightningChart使用教程:创建 JS 散点图 这是对 LightningChart JS XY 图表一些有趣功能的快速技术研究,以及如何使用 LightningChart JS 创建嵌入式散点聊天和添加自定义交互。 此图表将可视化一个 XY 坐标列表以及一个额外的自定义属性,它只是一段文本。这些自定义属性将与 UI 文本元素一起显示,这些元素将与用户的鼠标移动交互。 我们将介绍的突出功能是: 什么是散点图? 如何创建散点图? 如何将自定义属性附加到数据点。 如何创建交互式 UI 文本元素。 最终结果 什么是散点图? 散点图或散点图是.. 阅读详情

相关推荐

从零到一:用ROS2和Gazebo搭建Franka机械臂仿真环境(避坑指南)

本文详细介绍了如何使用ROS2和Gazebo从零开始搭建Franka机械臂的仿真环境,包括环境准备、ROS2包安装、控制器配置及常见问题解决方案。特别针对关节位置控制等核心功能提供了实用代码示例和避坑指南,帮助开发者高效构建机器人算法验证平台。

weixin_29061465的博客 459

python爬虫学习34

python爬虫学习34 目录python爬虫学习34九、parsel 库的使用其一9-1、parsel 库的下载9-2、初始化9-3 提取文本 今天呢就进入到爬虫网页数据解析提取的最后一个小节,与大家一同学习parsel库的使用,由于博主本身对Web编程不甚了解,所以CSS选择就浅显的了解了一下,pyquery库大家感兴趣就自己学习吧。 九、parsel 库的使用其一 前几节我们共同学习了Xpath语言,一同了解了lxml与beautiful soup库的基本用法。现在不管是使用Xpath还是CSS选择器

szshiquan的博客 3545

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 464

2- Python 网络爬虫 — 如何精准提取网页数据?XPath、Beautiful Soup、pyquery 与 parsel 实战指南

在网络爬虫与数据采集场景中,是核心步骤之一。当我们通过请求工具(如requestsaiohttp)获取到网页的 HTML/XML 源码后,需要从中精准提取目标数据(如文本、链接、属性等)。目前 Python 生态中,常用的解析工具包括和。它们各有特点:有的基于路径表达式,有的模仿前端语法,有的专注于高效解析。本文将系统讲解这四种工具的使用方法、优缺点及适用场景。

wh1236666的博客 1200

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5638

换频道——假想《道德经》与量子力学的一些联系

之前看到一位AI PM的前辈分享了自己对于PM境界的看法: 境界一,行事被放心。 境界二,独立主导产品线从0到1,做正确的事,并把事做正确。 境界三,一切以灵魂境界为基础,产品作为其理念的衍生。 对于我,3个月尝试于目标而无获,但塞翁失马焉知非福。自己已经具备境界一,虽然境界二尚未成熟,但境界三却有幸有所思考。 今天,往澳门的动车途中有感而发,为随笔。

1020

Python 中 PyQuery 库

文章目录PyQuery库一、 简介1、 概述2、 安装3、 导包二、 用法详解1、 初始化1.1 字符串初始化1.2 URL 初始化1.3 文件初始化2、 CSS选择器2.1 属性选择器2.2 节点选择器2.3 筛选选择器3、元素操作3.1 遍历元素3.2 获取属性值4、 样式操作4.1 修改样式5、 获取值5.1 获取属性值5.2 获取文本值5.3 获取 HTML 元素三、 总结 PyQuery库 一、 简介 1、 概述 pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。 4248

【26美赛C题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

本文为2026年美国大学生数学建模竞赛(MCM/ICM)C题的解题思路与资源分享。文章提出系统学习数学建模的重要性,强调竞赛考察的是综合建模能力而非单纯计算。针对C题常见的复杂系统评估类问题,作者提供了一套完整的建模框架,包括问题拆解、指标体系构建、数据建模、决策模型等六个阶段。订阅者可获得Python/Matlab双版本代码、论文结构解析、AI辅助建模方法等资源。内容适合准备参加各类数学建模竞赛的学生,特别是希望通过AI技术提升建模效率的参赛者。

一键难忘的博客 1683

Python 3网络爬虫之BeautifulSoup和pyquery用法

代码摘抄之《Python 3网络爬虫开发实战》

种一棵树,最好的结果是十年前,其次是现在! 446

一分钟了解OpenSpec (规格)

OpenSpec是由Fission AI开源的轻量级规范驱动开发(SDD, Spec-Driven Development)CLI工具。它专为AI编程助手(如Cursor、Claude Code)设计,核心是**“先约定,后编码”:在AI写代码前,先通过结构化规范文档达成共识,让开发过程可预测、可审计、可协作**。轻量无侵入:单CLI、无依赖、不改造项目、1分钟接入存量友好:增量Spec、不重构旧文档、1→n王者完全可控:每步审查、AI按图施工、零返工协作利器。

h a 6 6 6 c k 为 你解决复杂难题! 2752

一文掌握 Playwright 的详细使用

Playwright 是一个功能强大的浏览器自动化工具,适用于网页自动化测试、数据抓取和网页交互。通过掌握其基础用法和高级功能,你可以轻松实现各种浏览器自动化任务。Playwright 支持多浏览器、多语言,并且具有高效的异步操作能力,是现代浏览器自动化的首选工具之一。

数据知道的博客 1万+

3.4 XPath、Beautiful Soup 与 Pyquery的基本使用总结和比较

简要概述 XPath、Beautiful Soup 与 Pyquery的基本使用总结和比较

学编程的菜恐龙的博客 1533

爆破shadow文件密码脚本(完成版)

由于添加了一个for循环,再稍作修改,让password not found!print(f"Trying password:")显示爆破的密码和过程。将代码中的password="123456"替换成下面代码。line.strip()函数首尾去空格。

m0_56578216的博客 771

网络爬虫之XPath、Beautiful Soup、PyQuery的使用

网络爬虫解析库的引入 之前基于re正则,比较繁琐,出错率较高 爬取信息大多基于html结构的web页面, 网页节点较多,各种层级关系。 常见的Python解析库 XPath: 基于XML文档,包含html查找功能 官方文档 Beautiful Soup: 依赖于lxml的解析库 官方文档 PyQuery: Python仿照jQuery严格实现 官方文档 关于 XPath 的使用 XPath(XML Path Language)是一门在XML文档中查找信息的语言。 XPath 可用来在XML文

qq_37232731的博客 811

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python网络爬虫开发实战之网页数据的解析提取

对于网页的节点来说,可以定义id、class或其他属性,而且节点之间还有层次关系,在网页中可以通过XPath或CSS选择器来定位一个或多个节点。相关的解析库也比较多,包括lxml、Beautiful Soup、pyquery、parsel等。

九筠的博客 1393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

网络爬虫之数据解析(正则、Pyquery、Xpath、Beautiful soup)

XPath 由 W3C 作为一个标准发布,被广泛应用于各种XML解析和处理技术中,比如在XSLT(Extensible Stylesheet Language Transformations)中选取数据,或者在Python的lxml库中解析HTML文档。match()方法会尝试从字符串开始的位置到字符结束的位置匹配正则表达式,如果匹配,返回匹配的结果,不匹配返回None。是一个用于解析HTML和XML文档的Python库,它提供了与jQuery类似的语法,使得从文档中提取信息变得简单快捷。

指针先生 1803

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

爬虫--2.三种解析库(XPath、Beautiful Soup、PyQuery)

下面将以代码的形式展现,熟练掌握怎么用代码输出: XPath from lxml import etree f = open('./my.html','r',encoding='utf-8') content = f.read() f.close() # 解析HTML⽂档,返回根节点对象 html = etree.HTML(content) # 获取⽹⻚中所有标签并遍历输出标签名 result = html.xpath("//*") # 获取所有子节点 result = html.xpath("/*

Amanda_python的博客 381

数据之路 - Python爬虫 - urllib、Request、正则、XPath、Beautiful Soup、Pyquery

一、基本库-urllib库 urllib库,它是Python内置的HTTP请求库。它包含4个模块: request:它是最基本的HTTP请求模块,可以用来模拟发送请求。 error:异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作以保证程序不会意外终止。 parse:一个工具模块,提供了许多URL处理方法,比如拆分、解析、合并等。 ...

weixin_30873847的博客 467

【爬虫学习笔记】三、BS4 & Xpath & pyquery & parsel 基础使用

在上一篇笔记【爬虫学习笔记】二、代理与代理池的使用中,我们学会了如何使用代理池,但笔者在记录学习使用过程中由于半路出家的原因,基础并不扎实,因此想要巩固几个在爬虫中常用的数据解析库的使用方法。在此之前,需要具备一些简单的html&css知识,了解web网页基础。本篇文章的内容相对简单,不必专门学习,随用随看可能会更加高效。大约阅读时长为10分钟。BS4 & Xpath & pyquery & parsel的基本用法本案例对应的学习内容为《python3网络爬虫开发实战》第二版中第3章的内容...

weixin_45242930的博客 1054

python爬虫3 xpath,beautiful soup

python爬虫入门(三)XPATH和BeautifulSoup4 XML和XPATH 用正则处理HTML文档很麻烦,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素。 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML...

qq_44658941的博客 1288

beautifulsoup解析动态页面div未展开_网络爬虫之页面解析

作者:玩世不恭的Coder时间:2020-03-13说明:本文为原创文章,未经允许不可转载,转载前请联系涛耶网络爬虫之页面解析前言一、Beautiful Soup就该这样使用节点选择数据提取Beautiful Soup小结二、XPath解析页面节点选择数据提取XPath小结三、pyquery入门使用节点选择数据提取pyquery小结四、腾讯招聘网解析实战网页分析:案例源码总结前言With...

weixin_33138569的博客 878

Python爬虫日记3——解析库(XPath,Beautiful Soup,pyquery)

1、xpath from lxml import etree 实例 from lxml import etree text = ''' <div> <ul> <li class="item-0"><a href="link1.html" >first item</a></li> <li class="item-1"...

Albert的博客 576

Python网络爬虫学习笔记(四)解析库的使用

解析库的使用 使用正则表达式,比较烦琐,而且万一有地方写错了,可能导致匹配失败。 对于网页的节点来说,有 id 、 class 或其他属性。 而且节点之间还有层次关系,在网页中可以通过 XPath 或 css 选择器来定位一个或多个节点 。 利用 XPath 或 css选择器来提取某个节点,然后再调用相应方法获取它的正文内容或者属性。 在 Python 中,有 lxml 、Beautiful Soup 、 pyquery 等解析库实现这个操作。 使用 XPath XPath , 全称 XML Path La

qq_42138271的博客 1681

python爬虫标签筛选_python爬虫数据解析的四种不同选择器Xpath,Beautiful Soup,pyquery,re...

这里主要是做一个关于数据爬取以后的数据解析功能的整合,方便查阅,以防混淆主要讲到的技术有Xpath,BeautifulSoup,PyQuery,re(正则)首先举出两个作示例的代码,方便后面举例解析之前需要先将html代码转换成相应的对象,各自的方法如下:Xpath:In [7]: from lxml importetreeIn [8]: text = etree.HTML(html)Beauti...

weixin_39728221的博客 501

第四部分 解析库的使用(XPath、Beautiful Soup、PyQuery)

在网页节点中,可以定义id、class或其他属性。节点间有层次关系,网页中要通过XPath或CSS选择器定位一个或多个节点。在页面解析时,可利用XPath或CSS选择器提取某个节点,再调用相应方法获取它的正文内容或者属性,就可提取到想要的信息。在python中常用的解析库有lxml、Beautiful Soup、pyquery等。使用这些库可以很大程度上提高效率。一 使用XPat...

banlei1559的博客 322

Python爬虫从入门到精通——解析库Beautiful Soup的使用

分类目录:《Python爬虫从入门到精通》总目录 在《解析库re的使用:正则表达式》中介绍了正则表达式的相关用法,但是一旦正则表达式写的有问题,得到的可能就不是我们想要的结果了。而且对于一个网页来说,都有一定的特殊结构和层级关系,而且很多节点都有id或class来作区分,所以我们也可以借助它们的结构和属性来提取。本文就来介绍一个强大的解析工具Beautiful Soup,它借助网页的结构和属性等特...

冯·诺依曼 1万+
上一篇: Python笔记:网络爬虫之模拟人人网登录及获取数据的过程详解
下一篇: Python笔记:网络爬虫实战之豆瓣网
Wang's Blog
博客等级 码龄12年 7418粉丝 2407原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值