Python BeautifulSoup4

    xiaoxiao2021-03-25  510

    BeautifulSoup4

    python 解析html, 用一次翻一次文档,无语了。距离上次用BeautifulSoup4已经差不多10个月了…./(ㄒoㄒ)/~~ 现在做个记录,方便下次用。

    安装

    pip install beautifulsoup4

    引入

    from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc, 'html.parser')

    html.parser解析器是Python的内置标准库,还有另外的html解析器 lxml, html5lib 参考如下:

    语法

    html标签名字查找

    # 通过html标签名获取 soup.title # <title>The Dormouse's story</title> # 获取标签名 soup.title.name # u'title' # 获取标签内容 soup.title.string # u'The Dormouse's story' # 获取父标签名 soup.title.parent.name # u'head' # 获取p标签(dom层第一个p标签) soup.p # <p class="title"><b>The Dormouse's story</b></p> # 获取p标签的 class 属性值 soup.p['class'] # u'title' # 查看a标签(dom层第一个a标签) soup.a # <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a> # 获取所有a标签 soup.find_all('a') # [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, # <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, # <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>] # 获取指定ID的标签 soup.find(id="link3") # <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a> # 获取a标签的href属性值 a_link.get('href') 或 a_link['hreft'] # 获取标签内的所有文本 soup.get_text()

    tag

    # 获取标签名 tag.name # 获取标签属性 tag.attrs

    css搜索

    注意 class_ 的下划线

    soup.find_all("a", class_="sister")

    text搜索

    text 参数接受 字符串 , 正则表达式 , 列表, True

    soup.find_all(text="Elsie") # [u'Elsie'] soup.find_all(text=["Tillie", "Elsie", "Lacie"]) # [u'Elsie', u'Lacie', u'Tillie'] # 这个正则会比较实用吧 soup.find_all(text=re.compile("Dormouse")) [u"The Dormouse's story", u"The Dormouse's story"]

    参考文档

    BeautifulSoup4 中文

    BeautifulSoup4 英文

    转载请注明原文地址: https://ju.6miu.com/read-12134.html

    最新回复(0)