宝塔面板怎么搭建网站,良品铺子网站建设,怎么把网站黑掉,wordpress更换域名301目录 一. BeautifulSoup的作用二. 核心方法介绍2.1 构造函数2.2 find()方法2.3 find_all()方法2.4 select()方法 三. 网络爬虫中使用BeautifulSoup四、案例爬取结果 一. BeautifulSoup的作用
解析HTML/XML文档#xff1a;它可以将复杂的HTML或XML文本转换为易于操作的树形结构… 目录 一. BeautifulSoup的作用二. 核心方法介绍2.1 构造函数2.2 find()方法2.3 find_all()方法2.4 select()方法 三. 网络爬虫中使用BeautifulSoup四、案例爬取结果 一. BeautifulSoup的作用
解析HTML/XML文档它可以将复杂的HTML或XML文本转换为易于操作的树形结构。例如将一个网页的HTML内容解析后就可以像在文件系统中遍历文件夹和文件一样在这个树形结构中查找特定的标签、属性和文本内容。数据提取能够方便地从解析后的文档中提取所需的数据。比如从新闻网站中提取文章标题、内容、发布时间或者从电商网站提取商品名称、价格、评论等信息。清理和转换数据在一定程度上可以对提取的数据进行清理和转换。例如去除HTML标签只保留纯文本内容或者修改标签的属性等。
二. 核心方法介绍
2.1 构造函数 - **语法**BeautifulSoup(html_doc, parser)- **作用**创建一个BeautifulSoup对象其中html_doc是要解析的HTML或XML文档可以是字符串形式的网页内容parser是解析器类型常用的有html.parserPython内置解析器、lxml需要安装lxml库解析速度快且功能强大和html5lib对HTML5的支持较好。例如pythonfrom bs4 import BeautifulSoupimport requestsurl https://www.example.comresponse requests.get(url)soup BeautifulSoup(response.text, html.parser)2.2 find()方法 - **语法**find(name, attrs, recursive, string, **kwargs)- **作用**在解析后的文档树中查找并返回第一个符合条件的标签。- **参数说明**- name标签名称如div、a等。例如soup.find(div)会返回文档中第一个div标签。- attrs一个字典用于指定标签的属性。例如soup.find(a, attrs{class: link})会返回第一个class属性为link的a标签。- recursive一个布尔值默认为True表示是否在整个文档树中递归查找。如果设为False则只在文档树的直接子元素中查找。- string用于匹配标签中的文本内容。例如soup.find(p, stringThis is a paragraph)会返回包含文本This is a paragraph的第一个p标签。2.3 find_all()方法 - **语法**find_all(name, attrs, recursive, string, limit, **kwargs)- **作用**返回文档树中所有符合条件的标签列表。- **参数说明**参数含义与find方法类似多了一个limit参数用于限制返回结果的数量。例如soup.find_all(a, limit 3)会返回文档中前3个a标签。2.4 select()方法 - **语法**select(selector)- **作用**使用CSS选择器语法在文档树中查找元素。这是一种非常强大的查找方式能够方便地定位到复杂结构中的元素。例如soup.select(div.class a)会返回所有在class属性的父div标签下的a标签。三. 网络爬虫中使用BeautifulSoup
案例抓取电影天堂2024年最新电影并保存所有电影名称和链接 电影网址https://dytt89.com/ 需要抓取的内容 功能实现 -1.安装BeautifulSoup库 使用pip命令安装beautifulsoup4库。在命令行中输入pip install beautifulsoup4 -2.导入模块 在Python代码中需要从bs4包中导入BeautifulSoup类。同时如果是从网页获取数据通常还需要导入requests库来发送HTTP请求。 -3.代码实现
# 抓取2024年最新电影链接并保存所有电影信息和链接# 导入requests
import requests# 导入 BeautifulSoup
from bs4 import BeautifulSoup
# 导入re
import re# 头部
headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
}# 获取网页内容
url https://dytt89.com/res requests.get(url, headersheaders, verifyFalse)
# 指定字符集
res.encoding gb2312# 获取网页内容
html_text res.text# 创建BeautifulSoup对象
soup BeautifulSoup(html_text, html.parser)# 找到2024新片精品的板块
new_movies_section soup.find(div, class_co_area2).find(div, class_title_all).find(a, hrefTrue, text2024新片精品)if new_movies_section:movie_list new_movies_section.find_next(div, class_co_content222).find_all(li)for movie in movie_list:movie_name movie.find(a).textmovie_link urlmovie.find(a)[href].strip(/)print(f电影名称: {movie_name})print(f电影链接: {movie_link})# 关闭响应
res.close()
四、案例爬取结果
注意原电影链接如下此处做了一个拼接。