目标:对一个本地自己写的网页来解析其中的内容,筛选出评分大于等于4分的文章。网页如下图所示,每篇文章包含标题、图片、分类、评分和描述五个部分。
解析过程可以大致划分为三个步骤:
- 使用BeaurifulSoup解析网页
- 描述要爬取的东西在哪
- 从标签中获得我们需要的信息
一、使用BeaurifulSoup解析网页
首先要导入python第三方库
from bs4 import BeautifulSoup
使用BeaurifulSoup解析网页的核心代码如下,其中html指的是一个html文件,参数“lxml”代表了使用lxml解析库来进行解析。除了lxml外还有其它的解析库,此处使用lxml。这行代码可以结合它的英文名字来进行理解,我们要得到一碗汤,我们需要食材–>html和食谱–lxml来进行制作。
Soup = BeautifulSoup(html, 'lxml')
我们通过以下代码来得到我们自己编写的网页的Soup,将Soup输出我们可以得到网页的html源码。
path = './web/new_index.html'
with open(path, 'r') as f:
Soup = BeautifulSoup(f.read(), 'lxml')
print(Soup)
<html>
<head>
<link rel="stylesheet" type="text/css" href="new_blah.css">
</head>
<body>
<div class="header">
<img src="images/blah.png">
<ul class="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Site</a></li>
<li><a href="#">Other</a></li>
</ul>
</div>
<div class="main-content">
<h2>Article</h2>
<ul class="articles">
<li>
<img src="images/0001.jpg" width="100" height="91">
<div class="article-info">
<h3><a href="www.sample.com">Sardinia's top 10 beaches</a></h3>
<p class="meta-info">
<span class="meta-cate">fun</span>
<span class="meta-cate">Wow</span>
</p>
<p class="description">white sands and turquoise waters</p>
</div>
<div class="rate">
<span class="rate-score">4.5</span>
</div>
</li>
<li>
<img src="images/0002.jpg" width="100" height="91">