Python爬虫+认识html网页文本文件,使用beautifulSoup获取信息

认识HTML

HTML参考手册:

https://www.w3cschool.cn/htmltags/tag-p.html

HTML线上教程:

https://www.runoob.com/html/html-examples.html

 

菜鸟教程html在线编程器:

https://www.runoob.com/try/try.php?filename=tryhtml_comment

 

提示:将下面代码复制到 菜鸟教程html在线编程器 运行。 对照页面显示效果分析HTML的标签使用,学习html的页面编程设计。参考HTML线上教程和HTML参考手册,学习更多的html。

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

</head>

<body bgcolor="lightgreen">

 

<h1 align="center">我的第一个标题</h1>

<h2 align="left">我的第一个标题</h2>

<h3 align="right">我的第一个标题</h3>

 

 <!-- 这是一个注释,可以在这里写入你的注释内容 -->

 

 <!-- hr 标签定义水平线 horizon -->

<hr />

 

<p>我的第一个段落。</p>

<hr />

<p>

每个表格从一个 table 标签开始。 

每个表格行从 tr 标签开始。

每个表格的数据从 td 标签开始

</p>

 

<h4>表格 两行三列:</h4>

<table border="1"  width="100%" align ="center">

<tr height ="30px" bgcolor="#FFEBCD" align ="center">

  <td>100</td>

  <td>200</td>

  <td>300</td>

</tr>

<tr height ="30px"  bgcolor="blue">

  <td>400</td>

  <td>500</td>

  <td>600</td>

</tr>

</table>

<hr/>

<h4>超级链接:</h4>

<p><a href="/index.html">本文本</a> 是一个指向本网站中的一个页面的链接。</p>

<p>

<a href="http://www.microsoft.com/">本文本</a>

 是一个指向万维网上的页面的链接。

</p>

<hr/>

 

<h4>无序列表:</h4>

<ul>

  <li>Coffee</li>

  <li>Tea</li>

  <li>Milk</li>

</ul>

 

<h4>无序列表:</h4>

<ul>

  <li>Coffee</li>

  <li>Tea</li>

  <li>Milk</li>

</ul>

 

<h4>有序列表:</h4>

<ol>

  <li>Coffee</li>

  <li>Tea</li>

  <li>Milk</li>

</ol>

 

<ol start="50">

  <li>Coffee</li>

  <li>Tea</li>

  <li>Milk</li>

</ol>

</body>

</html>

 

BeautifulSoup库简单使用 代码

Beautiful Soup 4.4.0 文档

https://beautifulsoup.readthedocs.io/zh-cn/latest/

import bs4
txt_html ="""
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body bgcolor="lightgreen">
<h1 align="center">我的第一个标题</h1>
<h2 align="left">我的第一个标题</h2>
<h3 align="right">我的第一个标题</h3>
 <!-- 这是一个注释,可以在这里写入你的注释内容 -->
 <!-- hr 标签定义水平线 horizon -->
<hr />
<p>我的第一个段落。</p>
<hr />
<p>
每个表格从一个 table 标签开始。 
每个表格行从 tr 标签开始。
每个表格的数据从 td 标签开始
</p>
<h4>表格 两行三列:</h4>
<table border="1"  width="100%" align ="center">
<tr height ="30px" bgcolor="#FFEBCD" align ="center">
  <td>100</td>
  <td>200</td>
  <td>300</td>
</tr>
<tr height ="30px"  bgcolor="blue">
  <td>400</td>
  <td>500</td>
  <td>600</td>
</tr>
</table>
<hr/>
<h4>超级链接:</h4>
<p><a href="/index.html">本文本</a> 是一个指向本网站中的一个页面的链接。</p>
<p>
<a href="http://www.microsoft.com/">本文本</a>
 是一个指向万维网上的页面的链接。
</p>
<hr/>
<h4>无序列表:</h4>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ul>
<h4>无序列表:</h4>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ul>
<h4>有序列表:</h4>
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

<ol start="50">
  <li>Coffee 50</li>
  <li>Tea 50</li>
  <li>Milk 50</li>
</ol>
</body>
</html>
"""
#定义BeautifulSoup对象
txt_soup = bs4.BeautifulSoup(txt_html,"html.parser")
print(type(txt_soup))
#
#从table标签中提取信息
#
print("从table标签中提取信息:")
table_soup = txt_soup.find_all(name ="table")
print(type(table_soup))
#print(table_soup) #调试
for table_each in table_soup:
    for tr_each in table_each.find_all('tr'):
        for td_each in tr_each:
            print(td_each.string, end='')
            #print(" {}".format(td_each.string.strip("\n")), end='')
        print()
#
#从ol标签中提取信息
#
print("从ol标签中提取信息:")
ol_soup = txt_soup.find_all(name ="ol")

print(type(ol_soup))
#ol_soup = txt_soup.find_all(name ="ol",start="50" )
# 
for ol_each in ol_soup:
    for li_each in ol_each.find_all('li'):
        print(li_each.string)

#
#从a标签中提取地址
#
print("从a标签中提取地址:")
a_soup = txt_soup.find_all(name ="a") # 网址在标签<a>内
for a_each in a_soup:
        print(a_each["href"])

 

posted @ 2024-04-09 20:55  辛河  阅读(36)  评论(0编辑  收藏  举报