利用python爬取豆瓣音乐TOP250的数据

该教程详细介绍了如何使用Python爬虫技术抓取豆瓣音乐Top250排行榜的数据,包括数据获取、数据提取和数据存储。通过requests和BeautifulSoup库获取网页信息,正则表达式处理数据,最后将信息存储到CSV文件中。爬虫代码分为四个步骤:获取页面、抓取网址、抓取专辑详情和存储信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、爬虫设计的技术:

1、数据获取:

2、数据提取:

3、数据存储:

备注:

二、分步代码展示:

0、需要引入的库:

1、列举出需要爬虫的所有页面

2、在每个页面抓取包含的网址信息

3、抓取专辑页面中的信息

4、存储获取的信息

 三、爬虫的全部代码:


一、爬虫设计的技术:

1、数据获取:

通过http获取网站的数据,如urllib,urllib2,requests等模块。

2、数据提取:

将web站点所获取的数据进行处理,获取所需要的数据,常使用的技术有:正则re,BeautifulSoup,xpath等。

3、数据存储:

将获取的数据有效的存储,常见的存储方式包括:TXT文件,csv文件,Excel,MongoDB数据库,MySQL数据库等。

备注:

本文通过requests模块获取数据,通过BeautifulSoup模块提取数据,通过csv文件存储数据。

二、分步代码展示:

0、需要引入的库:

import requests
from bs4 import BeautifulSoup
import csv
import re
import time
import datetime
import random

1、列举出需要爬虫的所有页面

# 使用列表推导式实现页码的增加,打印出来就一个包含所有网址的列表。
urls = ["https://music.douban.com/top250?start={}".format(str(i)) for i in range(0, 250, 25)]
print(urls)

执行结果如下图:

打印urls是一个列表,分别列出每页的网址,尾数是从0-250的等差为25的等差数列。

2、在每个页面抓取包含的网址信息

import requests
from bs4 import BeautifulSoup

# 模拟浏览器的headers,User-Agent用户代理
header = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"}
# 抓取指定Top250排行榜页面
def get_url_music(url):
    html = requests.get(url,headers=header) # 获取整个页面的信息
    soup = BeautifulSoup(html.text,'lxml') # 获取数据,使用lxml引擎
    a_tags = soup.find_all('a',attrs={'class':'nbg'})  # 方法选择器,提供一系列的方法。第一个参数指定节点名字,第二个参数是指定属性名字
    # for a_tag in a_tags: # 循环获取整个页面中包含的网址信息,是一个列表。
    #    print(a_tag['herf'])
    return a_tags


if __name__ == '__main__':
    # 使用列表推导式实现页码的增加
    urls = ["https://music.douban.com/top250?start={}".format(str(i)) for i in range(0, 250, 25)]
    for url in urls:
        tags_lest = get_url_music(url)
        with open('musics.txt', "a") as f:
            for a_tag in tags_lest:
                print(a_tag)
                print(a_tag['href'], type(a_tag))
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值