python爬虫(爬取酷狗排行榜并保存到本地)

python爬虫(爬取酷狗排行榜并保存到本地),第1张

python爬虫(爬取酷狗排行榜并保存到本地)

目录

了解什么是爬虫

安装相关的库

分析爬取的网页

写出代码


 一:了解什么是爬虫

        爬虫专业来讲就是一个探测机器,又被称为网络蜘蛛或网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

        但通俗来讲,爬虫就是模仿个人浏览网站,即爬取过程就是在模仿人的动作。

二:安装相关的库

requests-------------使用该库来进行对url的请求

bs4--------------------bs4即Beautiful Soup,bs4库是解析、遍历、维护、“标签树“的功能库

pandas---------------用于快速分析数据,以及数据清洗和准备等工作

time-------------------python时间库,用于爬取时设置时间,防止IP被封

三:分析爬取的网页

今天爬取的网页为酷狗排行榜

URL="酷狗飙升榜_排行榜_乐库频道_酷狗网"

点击F12,找到请求头,即:Request Headers

 在找到我们所要爬取的信息所在的标签

 如图,便可找到歌曲名即歌手名字

四:写代码
#导入相关的库
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
#发送给服务器的头部信息,即本机信息
headers = {
    'User.Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
#建立一个空列表
a=[]
#设置爬取函数
def get_info(url):
    #通过requests向服务器发送get请求
    wb_data = requests.get(url, headers=headers)
    #通过lxml解析该网站
    soup = BeautifulSoup(wb_data.text, 'lxml')
    #以下两步为提取相应标签下的信息
    ranks = soup.select('span.pc_temp_num')#提取排名信息
    #提取歌曲名,歌手名
    titles = soup.select('div.pc_temp_songlist > ul > li > a')#提取歌曲时间
    times = soup.select('span.pc_temp_tips_r > span')
    for rank, title, time in zip(ranks, titles, times):
     str1 = title.get_text().split('.')#使用split进行分割
     data = {
        'rank': rank.get_text().strip(),
        'singer': str1[0],
        'song': str1[-1],
        'time': time.get_text().strip()
            }
     a.append(data)#添加到之前的空列表中
     print(data)#输出data列表
#设置主函数        
if __name__ == '__main__':
    urls = [
        'http://www.kugou.com/yy/rank/home/{}.8888.html'.format(str(i)) for i in range(1, 2)
    ]
    for url in urls:
        get_info(url)
        time.sleep(2)
#保存爬取的数据        
    df_out=pd.Dataframe(a,columns=['rank','singer','song','time'])
    df_out.to_excel('aaa.xlsx')

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5571917.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存