BeautifulSoup

    技术2022-07-10  107

    前端盲一枚 近期对爬虫产生了独特的兴趣 嘿嘿 学习这份美丽的汤 并做个笔记 官方文档 什么?官方的看不明白? 我也是 正文 BeautifulSoup 一个灵活又方便的网页解析库,处理高效,支持多种解析器。 有了它,不用正则表达式也可以找到需要的数据(正则表达式学习起来有点痛苦)

    你也想使用吗?那就开始安装吧!!!

    如果已经装了pip 那事情就变得很简单了 只需要打开cmd,运行pip install BeautifulSoup4 咖啡还没倒满,就已经安装完毕了 哈哈

    可以用pip list查看有没有安装成功

    如果你没有pip 那就下载包安装吧下载地址👇 下载完成后解压到python3安装目录,lib下的site-packages目录 切换到命令行,进入到库目录下,输入python setup.py install,回车开始安装

    执行完毕后在IDLE 中执行from bs4 import BeautifulSoup 查看一下吧

    解析器 BeautifulSoupBeautiful Soup不仅支持Python标准库中的HTML解析器,还支持一些第三方的解析器 python 标准库

    BeautifulSoup(markup,"html.parser")

    第三方解析器 lxml HTML

    BeautifulSoup(markup,"lxml")

    lxml XML

    BeautifulSoup(markup,"xml")

    html5lib

    BeautifulSoup(markup,"html5lib")

    第三方的解析器不做安装,因为我还用不到 哈哈

    安装完毕可以开始使用了

    导入模块 from bs4 import BeautifulSoup

    本地文件

    soup = BeautifulSoup(open('本地文件'), "html.parser")

    网络文件

    soup = BeautifulSoup('字符串类型或者字节类型', "html.parser")

    根据标签名查找 soup.a 只能找到第一个符合要求的标签 获取属性 soup.a.attrs 获取所有的属性和值,返回一个字典 soup.a['href'] 获取href属性 获取内容 soup.a.string soup.a.text soup.a.get_text() find() 返回的匹配结果的第一个元素 soup.find('a')

    find_all() 可以根据标签名,属性,内容查找文档, 返回一个列表 soup.find_all('a') soup.find_all(['a', 'b']) soup.find_all('a', limit=2) 限制前两个

    正则表达式

    这表示<body>和<b>标签都应该被找到:

    for tag in soup.find_all(re.compile("^b")): print(tag.name)

    按CSS搜索 可以通过class_参数搜索有指定CSS类名的tag:

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

    CSS选择器.select() 在 Tag 或 BeautifulSoup 对象的 .select() 方法中传入字符串参数, 即可使用CSS选择器的语法找到tag:

    soup.select("title") # [<title>The Dormouse's story</title>] soup.select("p nth-of-type(3)") # [<p class="story">...</p>]
    Processed: 0.013, SQL: 9