数据分析之爬取数据

数据分析怎么分析呢

首先要获取数据

然后对目标数据进行分析,以不同的角

获取数据然后根据数据进行分析汇总

1,获取数据,

获取数据的方法很多,爬虫的实现方式也有很多,单个脚本使用requests很方便,也是我最常用的实现爬虫的方式。

不过今天使用的工具是scrapy,爬虫框架,也算是学习使用。

安装scrapy包 : pip install scrapy

打开控制台,创建一个项目 scrapy startproject 项目名称

打开就会发现整整齐齐的项目框架已经搭建完成

下面进入到spiders文件下面,创建一只小蜘蛛,它将为你工作

scrapy genspider 爬虫名  网址/api域名

 

 

 然后就能看到你的刚出生的小蜘蛛了。

在公共网络中爬取数据,一般网页渲染要么是服务器渲染,要么是客户端渲染。

服务器渲染形式,右键查看网页源码,所有网页的数据都能找到,通过正则或者xpath匹配出想要的内容即可。

客户端渲染,想要的数据在某个api直接返回了,不用解析网页。

上述例子中爬取的是B站上的作品数据,客户端渲染,找到api即可拿到数据。

 

 找到想要的数据,解析一下保存起来。

import scrapy
import csv


class XiaobaiSpider(scrapy.Spider):
    name = 'xiaobai'
    allowed_domains = ['api.bilibili.com']
    start_urls = ['https://api.bilibili.com/x/space/arc/search?mid=1539522362&ps=30&tid=0&pn=1&keyword=&order=pubdate&jsonp=jsonp']

    def parse(self, response, **kwargs):
        resp = response.json()['data']['list']['vlist']
        for i in resp:
            arg = {
                'name': i['title'],
                'time': i['length'],
                'view': i['play'],
            }
            with open('dataspider.csv', 'a') as f:
                csv.writer(f).writerow(arg.values())

        page = response.json()['data']['page']
        count = page['count']
        ps = page['ps']
        pn = page['pn']
        if pn * ps < count:
            pn += 1
            next_page = '/x/space/arc/search?mid=1539522362&ps=30&tid=0&pn=%d&keyword=&order=pubdate&jsonp=jsonp' % pn
            next_url = response.urljoin(next_page)
            yield scrapy.Request(next_url, callback=self.parse)

下面就是让你的小蜘蛛出去觅食!

数据保存在csv文件中 scrapy crawl 爬虫名

执行之后得到我们想要的数据

 拿到数据之后,无论是从excel上用柱状图表示,或者是使用pyecharts进行数据可视化,分析数据的特点。

由于涉及部分隐私,只分享爬虫框架scrapy的简单使用方法。

 

posted @ 2022-09-22 15:02  木_糖  阅读(758)  评论(0编辑  收藏  举报