3.1 网页解析概述
3.1.1 常用网页解析工具
除了学会向服务器发出请求、下载 HTML 源码,要获取结构化的数据还面临着一个最常见的任务,就是从 HTML 源码中提取数据。第 1 章曾经介绍过 Python 中解析网页主要用到 3 种工具 - 正则表达式、Lxml 库、Beautiful Soup。
鉴于以上 3 种工具的特点,本章重点讲解使用 Lxml 库和其使用的 XPath 语法,因为 XPath 基本上能满足从 HTML 网页中提取信息的绝大部分需求,而且简单、易于掌握,解析速度也快。本章也会简单讲解 Beautiful Soup 和正则表达式,读者在需要的时候可以继续查阅相关文档,深入学习。
3.1.2 HTML 源码简介
HTML 是一种超文本标记语言,简单理解就是为某些字句加上标志的语言,从而实现预期的特定效果,网页正是由这种 HTML 语言所编写出来的。作为一种标记语言,基本上只要明白各种标记的用法就算学会了 HTML。
HTML 的语法格式分为嵌套与非嵌套两类,嵌套格式为<标记>…</标记>,非嵌套仅有<标记>。此外,根据标记的不同,有的标记附带有属性参数,则表示为
<标记 属性="参数值">
下面通过 Scrapy 文档服务器的一个样例页面来讲解一下 HTML 源码。
<html> <head> <base href='http://example.com/'/> <title>Example website</title> </head> <body> <div id='images'> <a href='image1.html'>Name: My image 1 <br/><img src='image1_thumb. jpg'/></a> <a href='image2.html'>Name: My image 2 <br/><img src='image2_thumb. jpg'/></a> <a href='image3.html'>Name: My image 3 <br/><img src='image3_thumb. jpg'/></a> <a href='image4.html'>Name: My image 4 <br/><img src='image4_thumb. jpg'/></a> <a href='image5.html'>Name: My image 5 <br/><img src='image5_thumb. jpg'/></a> </div> </body> </html>
1. <html></html>标签
<html></html>这一对标签之间的内容描述整个网页。
2. HTML 文档的头部
位于<head></head>中的内容就是 HTML 文档的头部,其中除了网页标题<title>Example website</title>显示在浏览器顶端之外,其他内容并不通过浏览器直接显示给用户,而是有其他的作用。
头部元素也有从文档外部来声明的属性,如 CSS(层叠式样表)等。
3. 网页主体内容
位于<body></body>之间的所有内容是一个网页的主体,也就是浏览器窗口中可以出现的所有信息。
4. 链接
<a href="网址">链接名称</a>创建了一个指向“网址”的超链接,其显示为“链接名称”。
5. <div></div>标签
<div></div>这一对标签用来排版大块 HTML 段落。
6. </br>
</br>为断行的标签。
这里只是对 HTML 文档的代码做一个大致的介绍,目的在于让读者对 HTML 代码有一定的感性认识。下节开始介绍使用 XPath 语法从 HTML 源码中提取信息的方法。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论