Python BeautifulSoup使用教程:解析HTML和XML文档

2023-06-1319:43:59编程语言入门到精通Comments1,953 views字数 1313阅读模式

一 、BeautifulSoup

BeautifulSoup是一个Python包,用于解析HTMLXML文档。它可以快速而方便地从网页中提取信息,并以易于使用的方式对其进行处理。它支持各种解析器,包括内置的Python解析器和第三方解析器,例如lxml和html5lib。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

二、对标签提取代码示列

以下是使用BeautifulSoup解析HTML文档的示例代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

from bs4 import BeautifulSoup
import requests

url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 找到所有链接
links = soup.find_all('a')

# 找到特定类的所有元素
rows = soup.find_all('div', class_='row')

在上面的代码中,首先使用requests库获取网页的HTML代码,然后使用BeautifulSoup解析该代码。使用soup.find_all()方法可以查找HTML中的所有匹配元素,然后可以进行后续处理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

三 对标签内容提取代码实例

BeautifulSoup还提供了其他有用的功能,例如寻找元素的父代和子代,修改元素的属性和内容等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

以下是使用BeautifulSoup解析HTML文档,读取元素的属性和内容的示列代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

from bs4 import BeautifulSoup

html_code = ' <li>
                  <div class="item">
                    <img src="demo" alt="">
                    <p title=""><a href="" title=demo>demo</a></p>
                  </div>
                </li>  '

soup = BeautifulSoup(html_code, 'html.parser')
li_tags = soup.find_all('li')

for li in li_tags:
    img_src = li.find('img')['src']
    a_href = li.find('a')['href']
    a_text = li.find('a').text.strip()
    a_title = li.find('a').get('title','')

    print(f"img src: {img_src}, a href: {a_href}, a text: {a_text}")

在上面的代码中,html_code 是html 页面中的内容 也可以是html文件直接读取后的字符串,然后使用BeautifulSoup解析该代码。使用soup.find_all()方法查找HTML中的所有匹配元素,比如代码中对查找后的li标签内容元素进行处理,然后可以进行后续处理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/46934.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/46934.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定