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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员小蛋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值