使用 Python 和 beautifulsoup 进行网页抓取:BeautifulSoup 函数保存了什么?
在使用 Python 和 BeautifulSoup 进行网页抓取时,BeautifulSoup 函数的主要作用是将HTML或XML文档解析为一个树状结构的对象模型,这个模型可以方便地用于操作和提取网页中的内容。
BeautifulSoup
BeautifulSoup 函数接受一个HTML或XML文档作为输入,返回一个 BeautifulSoup 对象。这个对象是一个解析后的文档结构,包含了网页的所有内容和标签。它的主要特点包括:
HTML文档中的每个标签、属性和文本都可以通过此对象访问。
对HTML的修复:
from bs4 import BeautifulSoup html_doc = """ <html> <head><title>Example Page</title></head> <body> <h1>Main Heading</h1> <p class="intro">This is an example paragraph.</p> <a href="https://example.com">Visit Example</a> </body> </html> """ # 使用 BeautifulSoup 解析 HTML soup = BeautifulSoup(html_doc, 'html.parser') # 查看 BeautifulSoup 对象 print(soup.prettify()) # 美化输出整个HTML内容
<html> <head> <title> Example Page </title> </head> <body> <h1> Main Heading </h1> <p class="intro"> This is an example paragraph. </p> <a href="https://example.com"> Visit Example </a> </body> </html>
BeautifulSoup 对象可以直接访问HTML的内容。
print(soup.title) # <title>Example Page</title> print(soup.title.string) # Example Page print(soup.a) # <a href="https://example.com">Visit Example</a>
python print(soup.find('p')) # <p class="intro">This is an example paragraph.</p>
python print(soup.find_all('p')) # [<p class="intro">This is an example paragraph.</p>]
link = soup.find('a') print(link['href']) # https://example.com
print(soup.get_text()) # 输出: # Example Page # Main Heading # This is an example paragraph. # Visit Example
在解析后,BeautifulSoup 以树状结构存储HTML文档,其核心组件包括:
Tag:每个HTML标签被解析为Tag对象,包含标签名、属性和值。例如: python tag = soup.h1 print(tag.name) # h1 print(tag.string) # Main Heading
Tag
python tag = soup.h1 print(tag.name) # h1 print(tag.string) # Main Heading
NavigableString:HTML文档中的文本部分以NavigableString存储。例如: python print(soup.h1.string) # Main Heading
NavigableString
python print(soup.h1.string) # Main Heading
BeautifulSoup 对象本身:表示整个文档,通常是解析的根节点。