12 解析网页之XPath与CSS选择器的基本使用
在前一篇教程中,我们讨论了如何使用 BeautifulSoup
提取网页中的数据。作为爬虫开发者,除了熟悉如何提取数据,了解如何选择数据也是至关重要的。在本篇教程中,我们将深入探讨 XPath
和 CSS
选择器的基本用法,并结合实际案例帮助你更好地理解这些工具。
什么是XPath与CSS选择器
XPath
XPath
(XML Path Language)是一种用于在XML文档中查找信息的语言。虽然它最初是为XML设计的,但在解析HTML网页时也相当有效。它通过导航文档的结构来选择节点。
CSS选择器
CSS选择器
是一种用于选取HTML元素的语言,通常用于样式表中。它也可以被用作提取网页数据,因为它非常直观,容易学习。
XPath的基本用法
选择所有元素
使用//
选择器可以选择文档中的所有元素。例如,选择所有的<div>
元素:
1 | //div |
根据标签名选择
若想选择特定标签,例如所有的<h1>
标签:
1 | //h1 |
根据属性选择
XPath允许根据元素的属性进行查找。例如,选择所有具有class
属性值为example
的<div>
:
1 | //div[@class='example'] |
案例:使用XPath提取数据
假设我们有这样一个HTML结构,包含一些书籍信息:
1 | <div class="book"> |
使用XPath提取所有书名,可以使用以下代码:
1 | from lxml import html |
CSS选择器的基本用法
选择所有元素
用*
可以选择文档中的所有元素:
1 | * |
根据标签名选择
选择所有的<h1>
标签十分简单:
1 | h1 |
根据类选择
使用.
前缀选择类名,如选择class
为book
的所有元素:
1 | .book |
案例:使用CSS选择器提取数据
使用与上述相同的HTML结构,我们可以用CSS选择器提取书名:
1 | from bs4 import BeautifulSoup |
总结
在本篇教程中,我们讨论了 XPath
和 CSS
选择器的基本用法,并通过实例说明了如何在Python中使用这两种选择工具来提取网页数据。掌握这两种工具将为您在爬虫开发中提供更多灵活性和便利性。
在下一篇教程中,我们将介绍数据存储的相关内容,具体将会讲解如何将提取的数据存储为CSV
格式。希望你能继续关注并学习!
12 解析网页之XPath与CSS选择器的基本使用