Python安装BeautifulSoup及使用方法,利用BeautifulSoup解析html网页
Posted weixin_ancenhw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python安装BeautifulSoup及使用方法,利用BeautifulSoup解析html网页相关的知识,希望对你有一定的参考价值。
1、打开cmd命令提示符,输入安装的第三方库:pip install bs4,安装成功后,就可以使用其中的BeautifulSoup解析网页
基本语法:
初始化BeautifulSoup对象
from bs4 import BeautifulSoup
html = “”
page = BeautifulSoup(html,“html.parser”)
a = page.find(“标签名”,attrs=“属性”:“值”)#只查找一个结果
page.find_all(“标签名”,attrs=“属性”:“值”)#查找一堆结果
#获取文本
text = a.text
#获取属性
att = a.get(“属性名”)
2、如何使用find查找:
案例1
from bs4 import BeautifulSoup
html = """
<div id="menu">
<ul>
<li><a href="/html/gndy/dyzz/index.html">最新影片</a></li>
<li><a href="/html/gndy/index.html">经典影片</a></li>
<li><a href="/html/gndy/china/index.html">国内电影</a></li>
<li><a href="/html/gndy/oumei/index.html">欧美电影</a></li>
<li><a href="/html/tv/hytv/index.html">华语电视</a></li>
<li><a href="/html/tv/rihantv/index.html">日韩电视</a></li>
<li><a href="/html/tv/oumeitv/index.html">欧美电视</a></li>
<li><a href="/html/zongyi2013/index.html">最新综艺</a></li>
<li><a href="/html/2009zongyi/index.html">旧版综艺</a></li>
<li><a href="/html/dongman/index.html">动漫资源</a></li>
<li><a href="/html/game/index.html">游戏下载</a></li>
<li><a href="/html/3gp/3gpmovie/">手机电影</a></li>
<li><a href="#" οnclick="a()" target="_self"><font color=red>收藏本站</font></a></a></li>
<li><a href="/app.html">APP下载</a></li>
</ul>
</div>
<div id="menu2">
<ul>
<li><a href="/html/gndy/dyzz/index.html">最新影片2</a></li>
<li><a href="/html/gndy/index.html">经典影片2</a></li>
<li><a href="/html/gndy/china/index.html">国内电影2</a></li>
<li><a href="/html/gndy/oumei/index.html">欧美电影2</a></li>
<li><a href="/html/tv/hytv/index.html">华语电视2</a></li>
<li><a href="/html/tv/rihantv/index.html">日韩电视2</a></li>
</ul>
</div>
"""
soup = BeautifulSoup(html, "html.parser")
table = soup.find("div", attrs="id": "menu2")
lis = table.text.strip()
print(lis)
输出结果:
C:\\Programs\\Python\\vis\\Scripts\\python.exe "D:/pythonTest/test01/python base4.py"
最新影片2
经典影片2
国内电影2
欧美电影2
华语电视2
日韩电视2
Process finished with exit code 0
3、如何使用find_all全部查找案例分析:
需要注意的,table.find_all(“tr”)[1:]代表table标签从第1个元素,查找tr标签内容
from bs4 import BeautifulSoup
html = """
<table id="test2" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>品名</th>
<th>产地</th>
<th>单位</th>
<th>发布日期</th>
</tr>
</thead>
<tbody id="tableBody" class="ul">
<tr>
<td>蔬菜</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
<tr>
<td>蔬菜</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
<tr>
<td>蔬菜</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
</tbody>
</table>
<table id="test3" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>品名</th>
<th>产地</th>
<th>单位</th>
<th>发布日期</th>
</tr>
</thead>
<tbody id="tableBody" class="ul">
<tr>
<td>蔬菜1</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
<tr>
<td>蔬菜2</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
<tr>
<td>蔬菜3</td>
<td>冀</td>
<td>斤</td>
<td>2022-07-19</td>
</tr>
</tbody>
</table>
"""
soup = BeautifulSoup(html, "html.parser")
# 查找table标签,id=test3
table = soup.find("table", attrs="id": "test3")
# 从出现的tr第1个元素查找,第0个元素是属性名称
trs = table.find_all("tr")[1:]
# 循环遍历出trs中的值
for i in trs:
# 查找所有td标签
tds = i.find_all("td")
print(tds[0].text, tds[1].text, tds[2].text, tds[3].text)
输出结果:
C:\\Programs\\Python\\vis\\Scripts\\python.exe D:/pythonTest/test01/base64.py
蔬菜1 冀 斤 2022-07-19
蔬菜2 冀 斤 2022-07-19
蔬菜3 冀 斤 2022-07-19
Process finished with exit code 0
免费源码获得:关注微信公众号:ancenok,然后回复:021
以上是关于Python安装BeautifulSoup及使用方法,利用BeautifulSoup解析html网页的主要内容,如果未能解决你的问题,请参考以下文章
python--windows下安装BeautifulSoup