BeautifulSoup

Beautiful Soup 是一个用于从HTML和XML文件中提取数据的Python库。它通过创建一个解析树来方便用户搜索和修改文档的内容。下面是Beautiful Soup的一些基本应用和解释:

lxml是解释器

使用的时候要实例化类beautifulsoup

然后在去使用你要提取的内容

遍历文档树

#BeautifulSoup遍历文档树
 
from bs4 import BeautifulSoup
import requests
import lxml
 
 
url = "https://d2.shopxo.vip/"
try:
    response = requests.get(url)
except:
    raise Exception("请求失败")
 
html_content = response.text
soup = BeautifulSoup(html_content, 'lxml')
 
# print(soup) #已经把整个html赋值给了soup,输出soup就是输出整个html文档
# print(soup.meta) #输出在soup中从上到下找到的第一个meta标签
# print(soup.children) #输出soup的子节点,是一个迭代器,可以用for循环遍历
# for child in soup.children:
#     print(child)
# print(soup.title) #输出在soup中从上到下找到的第一个title标签
# print(soup.title.string) #输出title标签的儿子文本内容
# print(soup.title.text) #输出title标签的所有后代文本内容
# print(soup.head.string) #输出所有后代节点的文本内容
# print(soup.head.text) #由于没有儿子有文本内容,所以输出为空。
# print(soup.title.next_sibling) #输出title标签的下一个兄弟节点,这里是一个换行符,所以啥都没有
# print(repr(soup.title.next_sibling)) #repr()函数可以输出换行符的转义字符
# print(soup.title.previous_sibling) #输出title标签的上一个兄弟节点,这里是一个换行符,所以啥都没有
# print(repr(soup.title.previous_sibling))#输出上一个兄弟节点
# print(soup.title.next_sibling.next_sibling)#输出下一个兄弟节点的下一个兄弟节点
# print(soup.title.parent)#输出老爹
# print(soup.title.parents)#输出所有的祖先节点,是一个迭代器
 
# 这个for循环是在parents中是先找老爹,再找爷爷,再找曾祖父,一直到根节点document
# for parent in soup.title.parents:
#     print(parent.name

搜索文档树

  1. select() 方法:

    • select() 是 Beautiful Soup 提供的一个方法,用于通过CSS选择器选择元素。
    • CSS选择器是一种用于选择HTML元素的模式,常用于前端开发中的样式表(CSS)。
#搜索文档树
import requests
from bs4 import BeautifulSoup
 
url = "https://d2.shopxo.vip/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# # find方法
# #找到第一个class为category-list的ul标签。class有下换线是因为class是python的关键字,不能冲突
# # ul = soup.find("ul", class_="category-list")
# # print(ul)
# ul = soup.find("ul", {'class': 'category-list'})
# # print(ul)
# for item in ul.children:
#     # print(repr(item)) #用repr()函数输出item的内容,用这个函数如果内容是换行符,输出\n
#     if item != "\n":
#         print(item.span.text)#item.span是找到item从上往下的后代中的第一个span标签
# # find_all方法,返回一个列表
# ul = soup.find("ul", class_="category-list")
# # lis = ul.find_all("li")
# # print(lis)
# spans = ul.find_all("span")
# for span in spans:
#     print(span.text)
# select方法
# div = soup.select("ul.category-list")
# print(div)
# lis = soup.select("ul li.first")
# # print(lis)
# for li in lis:
#     print(li.span.text)

相关推荐

  1. 爬虫框架beautifulsoup详解

    2024-07-23 04:34:04       43 阅读
  2. Python爬虫---解析---BeautifulSoup

    2024-07-23 04:34:04       52 阅读
  3. 爬虫Python库BeautifulSoup

    2024-07-23 04:34:04       26 阅读
  4. 爬虫-BeautifulSoup之XML篇

    2024-07-23 04:34:04       49 阅读
  5. 【数据提取Xpath/BeautifulSoup4】

    2024-07-23 04:34:04       43 阅读
  6. BeautifulSoup的使用与入门

    2024-07-23 04:34:04       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 04:34:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 04:34:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 04:34:04       45 阅读
  4. Python语言-面向对象

    2024-07-23 04:34:04       55 阅读

热门阅读

  1. 解决云服务器CPU占用率接近100%问题

    2024-07-23 04:34:04       18 阅读
  2. js进阶之作用域、函数进阶以及解构赋值

    2024-07-23 04:34:04       15 阅读
  3. 代码随想录第十六天|贪心算法(2)

    2024-07-23 04:34:04       18 阅读
  4. 为什么要有指针和引用类型?

    2024-07-23 04:34:04       16 阅读
  5. redis

    redis

    2024-07-23 04:34:04      19 阅读
  6. Android init.rc的启动流程

    2024-07-23 04:34:04       20 阅读
  7. HormonyOS第一课第八章习题答案

    2024-07-23 04:34:04       14 阅读