BeautifulSoup示例

import requests
from bs4 import BeautifulSoup


def get_data(page=1):
    # 定义目标URL,该URL指向酷狗音乐排行榜页面
    url = f"https://www.kugou.com/yy/rank/home/{page}-8888.html?from=rank"
    # 设置请求头,模拟浏览器访问,避免被服务器拒绝访问
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
    }
    # 使用requests库发送GET请求,获取网页内容
    response = requests.get(url, headers=headers)
    # 获取响应的文本内容
    content = response.text

    # 初始化一个空列表,用于存储歌曲标题
    titles = []
    # 使用BeautifulSoup解析网页内容,指定解析器为lxml
    soup = BeautifulSoup(content, "lxml")
    # 查找包含排行榜内容的div元素,id为"rankWrap"
    div = soup.find("div", id="rankWrap")
    # 在找到的div元素中,继续查找ul元素
    ul = div.find("ul")
    # 遍历ul元素中的所有li元素
    for li in ul.find_all("li"):
        # 在每个li元素中查找a元素
        a = li.find("a")
        # 获取a元素的文本内容
        title = a.get_text()
        # 将获取到的文本内容按空格分割,取第一个元素,并去除首尾空白字符,然后添加到titles列表中
        titles.append(title.split()[0].strip())
    # 返回包含所有歌曲标题的列表
    return titles


if __name__ == "__main__":
    for i in range(1, 24):
        data = get_data(i)
        print(data)
posted @ 2025-05-08 09:16  卓能文  阅读(16)  评论(0)    收藏  举报