反爬虫爬取网易云歌单

本文介绍了一个主题式网络爬虫的设计方案,用于爬取网易云音乐的歌单信息。爬虫采用单线程,通过设置请求头部、获取网页资源并用etree解析,处理翻页通过调整URL的limit和offset参数。难点在于处理翻页请求和构建IP池。数据爬取后,进行了数据分析与可视化,包括绘制饼状图。
摘要由CSDN通过智能技术生成

一、主题式网络爬虫设计方案
1.主题式网络爬虫名称:爬取网易云音乐歌单

2.主题式网络爬虫爬取的内容与数据特征分析

爬取网易云音乐歌单前十页歌单,轻音乐类型的歌单名称、歌单播放量、歌单链接、用户名称。

分析歌单播放量和歌单标题关键词

3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)

实现思路:使用单线程爬取,初始化信息,设置请求头部信息,获取网页资源,使用etree进行网页解析,爬取多页时刷新offset,将爬取数据保存到csv文件中。

难点:使用的翻页形式为URL的limit和offset参数,发送的get请求时froms和url的参数要一至。

第一步:找IP资源
IP资源并不丰富,换句话说是供不应求的,因此一般是使用动态IP。
免费方法,直接在网络上找,在搜索引擎中一搜索特别多能够提供IP资源的网站,进行采集即可。
付费方法,通过购买芝麻代理上的IP资源,并进行提取,搭建IP池。
1.数据爬取与采集

from urllib import parse
from lxml import etree
from urllib3 import disable_warnings
import requests
import csv
class Wangyiyun(object):
  
    def __init__(self, **kwargs):
        # 歌单的歌曲风格
        self.types = kwargs['types']
        # 歌单的发布类型
        self.years = kwargs['years']
        # 这是当前爬取的页数
        self.pages = pages
        # 这是请求的url参数(页数)
        self.limit = 35
        self.offset = 35 * self.pages - self.limit
        # 这是请求的url
        self.url = "https://music.163.com/discover/playlist/?"
  
  
    # 设置请求头部信息(可扩展:不同的User - Agent)
    def set_header(self):
        self.header = {
   
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值