【Python爬虫实战02】

本文介绍了如何使用Python的requests和BeautifulSoup库来爬取有声小说网站上的专辑名、演播和播放量数据。首先确保安装了所需库,然后分析目标网页HTML结构,接着发送GET请求并解析HTML,最后通过CSS选择器提取相关信息。
摘要由CSDN通过智能技术生成

在本次实战中,记录了如何使用Python爬虫来获取有声小说的播放量。使用requests库发送HTTP请求,并借助BeautifulSoup库来解析网页内容。

⚙️ 准备工作

在开始之前,确保已经安装了Python以及requestsBeautifulSoup库。可以使用以下命令来安装它们:

pip install requests 
pip install BeautifulSoup

🎯 爬取目标

在这里插入图片描述

需要得到的数据:专辑名、演播、播放量

🌐 页面分析

在爬取之前,需要对目标网页进行分析,以确定要提取的数据所在的位置。

打开目标网页,并使用浏览器的开发者工具(通常是按F12键)查看网页的HTML结构。

xmly_02F12

使用检查功能,可找到目标数据在网页中所在位置,接下来就是通过request.get()方法获取数据。

🐍 编写爬虫代码

首先,需要导入所需的库:

import requests
from bs4 import BeautifulSoup

接下来,将发送GET请求并获取网页内容:

url = 'https://www.xxxxx.com/category/a3/mostplays/'
# 使用了常见的浏览器User-Agent来模拟浏览器请求
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

response = requests.get(url, headers=headers)
html = response.text
print(html.text)

运行结果:
在这里插入图片描述
这样不太好看,使用prettify()方法格式化输出解析后的文档,更容易找出目标:

soup = BeautifulSoup(response.text, "html.parser")
print(soup.prettify())

运行结果:

在这里插入图片描述

接下来,将使用BeautifulSoup库来解析HTML页面,并提取需要的信息。

分析界面可以得到书籍信息都在class_="_ZV"的标签中。
在这里插入图片描述
使用find_all方法获取所有书籍信息片段。

# 使用BeautifulSoup库来解析HTML页面
soup = BeautifulSoup(html, 'html.parser')
# 提取书籍列表
books = soup.find_all("li", class_="_ZV")

使用for循环提取每一本书的信息:书名、

for book in books:
    # 提取书名
    title = book.find("span", class_="v-m T_G").text  
    # 提取播放量
    playcount = book.find("span", class_="_hW").text  
    # 提取作者
    ablumuser = book.find("a", class_="album-author T_G").text

📑 结果展示

现在,可以将提取的信息进行处理和展示。例如,可以打印播放榜单中的前十项:

    print(f'书名:{title}-作者:{playcount}-播放量:{playcount}')

🎉 完整代码

下面是完整的Python爬虫代码:

import requests
from bs4 import BeautifulSoup
# 网址需要修改
url = "https://www.xxxxx.com/category/a3/mostplays/"
# 使用了常见的浏览器User-Agent来模拟浏览器请求
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}

response = requests.get(url, headers=headers)
# print(response.text)
soup = BeautifulSoup(response.text, "html.parser")
# print(soup.prettify())


books = soup.find_all("li", class_="_ZV")
print(books)
# data = []
for book in books:
    title = book.find("span", class_="v-m T_G").text  # 书名
    playcount = book.find("span", class_="_hW").text  # 播放量
    ablumuser = book.find("a", class_="album-author T_G").text
    # data.append([title, playcount, ablumuser])
    print(f'书名:{title}-作者:{playcount}-播放量:{playcount}')


🔍 总结

通过本次实战,学习了如何使用requestsBeautifulSoup库来爬取播放量。使用requests发送HTTP请求获取网页内容,然后使用BeautifulSoup库来解析HTML页面,并提取需要的信息。

现在,可以根据实际需求对提取的信息进行进一步处理,如数据存储、分析或可视化。🎉

参考:
网络爬虫——BeautifulSoup详讲与实战——以山河作礼。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸峰轻云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值