大数据之如何利用爬虫爬取数据做分析

198 篇文章 8 订阅
154 篇文章 2 订阅

前言

爬虫想必很多人都听过,这里简单介绍下爬虫,爬虫是一段可以在网页上自动抓取信息的程序,可以帮助我们获取一些有用的信息。能够完成上述功能的都可以称为爬虫,目前主流的Python爬虫框架主要分为调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。调度器主要来调度管理器、下载器和解析器;URL管理器主要用来管理URL,防止重复抓取或者循环抓取等;网页下载器用于下载网页,并转换成字符串;网页解析器用于解析下载下来的字符串,目前主要以DOM树来解析,也可以根据XML,HTML进行解析。爬虫框架已经帮我们完成了80%的工作,我们只需要关注三个步骤:

1、如何能请求得到目标网站的数据,

2、如何从解析器中截取我们想要数据,

3、得到数据后如何做分析。

【----帮助相关技术学习,以下所有学习资料文末免费领!----】

下面就以斗鱼网站上最火的直播主题,哪些主播的人气最高的目标为例,演示整个实现流程:

python环境搭建

python环境的搭建可以参考以下地址:http://www.runoob.com/python/python-install.html

爬虫框架还需要安装几个模块,requests和beautifulSoup4,分别运行命令,

pip install requests

pip install beautifulSoup4

开发工具选用PyCharm,运行完上面命令后,在PyCharm里安装上面两个组件模块,安装成功后,可以在开发工具里引入相关包

#!/usr/bin/python import requests from bs4 import BeautifulSoup as bs

如果引入成功,则安装完成。环境搭建完后,就开始码代码了。

获取目标网站信息

我们先打开斗鱼直播的网站,https://www.douyu.com/directory/all,F12可以看到网页的信息,大数据之如何利用爬虫爬取数据做分析

通过requests请求网站数据

response = requests.get(“https://www.douyu.com/directory/all”) print response.text

大数据之如何利用爬虫爬取数据做分析

我们就得到了网页的字符串信息,这里就完成了我们关注的第一步。

解析网页信息

下面介绍如何在大量的文本中筛选出需要的数据,BeautifulSoup功能非常强大,通过DOM树的方式帮助我们解析出网页的结构,可以以Python自带的html.parser进行解析,也可以使用lxml进行解析。

html = response.text html_tree = bs(html, “html.parser”) print html_tree 可以看到之前的字符串信息已经被格式化,得到很清晰的html文本。后面就可以很容易的获取DOM树中各个节点数据。我们可以观察到html文本中有用的数据都在

  • 标签的
  • 中,房间名是

    标签的内容,房间类型在标签下,房间人数在中,主播名在中。

    大数据之如何利用爬虫爬取数据做分析在刚才解析出的html文本中,查找出id="live-list-contentbox"的

    • 标签,并且获取所有的
    • 标签内容

      # 查询ul标签 host_infos = html_tree.find(“ul”, {“id”: “live-list-contentbox”}) # print host_infos # 查询所有li标签 host_list = host_infos.find_all(“li”) print host_list # 遍历获取直播信息 for host in host_list: #获取房间名 home_name = host.find(“h3”, {“class”: “ellipsis”}).string.strip() home_name = home_name.replace(“,”, “”) #获取主播名 p_str = host.find(“p”) host_name = p_str.find(“span”, {“class”: “dy-name ellipsis fl”}).string.strip() #获取房间类型 home_type = host.find(“span”, {“class”: “tag ellipsis”}).string #获取房间人数 home_num = host.find(“span”, {“class”: “dy-num fr”}).string print “\033[31m房间名:\033[0m%s,\033[31m房间类型:\033[0m%s,\033[31m主播名称:\033[0m%s,\033[31m房间人数:\033[0m%s” \ % (home_name, home_type, host_name, home_num)
      # 查询ul标签 host_infos = html_tree.find(“ul”, {“id”: “live-list-contentbox”}) # print host_infos # 查询所有li标签 host_list = host_infos.find_all(“li”) print host_list # 遍历获取 host_list 中主机的直播信息: #获取房间名 home_name = host.find(“h3”, {“class”: “ellipsis”}).string.strip() home_name = home_name.replace(“,”, “”) #获取主播名 p_str = host.find(“p”) host_name = p_str.find(“span”, {“class”: “dy-name ellipsis fl”}).string.strip() #获取房间类型 home_type = host.find(“span”, {“类”: “标记省略号”})。string #获取房间人数 home_num = host.find(“span”, {“class”: “dy-num fr”}).string print “\033[31m房间名:\033[0m%s,\033[31m房间类型:\033[0m%s,\033[31m主播名称:\033[0m%s,\033[31m房间人数:\033[0m%s” \ % (home_name, home_type, host_name, home_num)

      大数据之如何利用爬虫爬取数据做分析

      此时,我们就爬取到了数据分析需要的第1页数据,后面我们继续爬取2页,3页,。。。对于一般的网页来说,爬取数据的基本流程就这样。当然,不同网站爬取的难度不同,用到的技巧也会不一样,需要观察和思考怎样才能获取到有用数据。比如某些网站需要登录后才能获取数据,我们就需要模拟登录流程,保存cookie或者token用于请求数据。

      就拿斗鱼网站来说,在我们点击翻页的时候,可以通过F12查看network请求,可以发现一个有意思的规律,

      大数据之如何利用爬虫爬取数据做分析

      大数据之如何利用爬虫爬取数据做分析

      当我们点击第3页时,请求的链接是https://www.douyu.com/gapi/rkc/directory/0_0/3

      点击第4页时,请求的链接是https://www.douyu.com/gapi/rkc/directory/0_0/4

      请求链接末尾数字正好是请求的页码,因此,我们可以一次性获取几百页的数据,直接上代码,运行后就拿到了200页的直播信息数据。

      #!/usr/bin/python # coding=UTF-8 import requests import json import sys # reload()之前必须要引入模块 reload(sys) sys.setdefaultencoding(‘utf-8’) #解决中文乱码

      count = 1 base_url = “https://www.douyu.com/gapi/rkc/directory/0_0/”

      #存放数据路径 host_file_data = open(“D:\tmp_data\file_data.csv”, “w”) host_file_data.write(“房间名称,房间类别,主播名称,房间人数\n”) #请求200页数据 while count < 200: request_url = base_url + str(count) response = requests.get(request_url) # load json data json_data = json.loads(response.text) for host_info in json_data[“data”][“rl”]: # 解析json里面的房间名,房间类型,主播名称,房间人数 home_name = host_info[“rn”].replace(" “, “”).replace(”,", “”) home_type = host_info[“c2name”] host_name = host_info[“nn”] home_user_num = host_info[“ol”] # print “\033[31m房间名:\033[0m%s,\033[31m房间类型:\033[0m%s,\033[31m主播名称:\033[0m%s,\033[31m房间人数:\033[0m%s”\ # % (home_name, home_type, host_name, home_user_num) #写入文件中 host_file_data.write(home_name + “,” + home_type + “,” + host_name + “,” + str(home_user_num) + “\n”) count += 1

      大数据之如何利用爬虫爬取数据做分析

      数据的统计分析

      我们的目标是统计目前最火的主题排名和最具人气的主播名称。python中的matplotlib库可以帮助我们快速的绘制2D图形,pandas库可以解决数据分析任务,这里用来完成导入和读取数据的任务。

      可以通过pip install pandas和pip install matplotlib安装库,如果运行报SimHei not found,中文显示方框的问题:

      首先将windwos中fonts目录下的simhei.ttf拷贝到Python根目录中的/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf目录中,
      然后删除~/.cache/matplotlib的缓冲目录,重新运行。

      1.统计直播数最多的主题(房间类别)

      import pandas as pd import matplotlib.pyplot as plt

      df=pd.read_csv(“/root/.jupyter/study_python/file_data.csv”)#读取数据 #统计直播数最多的主题(房间类别) names=df[“房间类别”].value_counts() plt.rcParams[‘figure.figsize’]=(20.0,4.0)#设置图的尺寸 plt.rcParams[‘figure.dpi’]=200 #设置分辨率 #设置图的字体 font={ ‘family’:‘SimHei’, ‘weight’:‘bold’, ‘size’:‘15’ } plt.rc(‘font’,**font) plt.bar(names.index[0:15],names.values[0:15],fc=‘b’) plt.show()

      大数据之如何利用爬虫爬取数据做分析 2.各个主题的直播观看人数排名

      大数据之如何利用爬虫爬取数据做分析

      3.各个主播的观看人数排名

      大数据之如何利用爬虫爬取数据做分析

      从数据爬取到数据分析,整个基本的流程就是这样,希望读者可以通过这个简单的示例能够对大数据和爬虫产生兴趣。后续将继续呈现上数据分析的进阶分享,谢谢。

      一、Python入门

      下面这些内容是Python各个应用方向都必备的基础知识,想做爬虫、数据分析或者人工智能,都得先学会他们。任何高大上的东西,都是建立在原始的基础之上。打好基础,未来的路会走得更稳重。所有资料文末免费领取!!!

      包含:

      计算机基础

      在这里插入图片描述

      python基础

      在这里插入图片描述

      Python入门视频600集:

      观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

      二、Python爬虫

      爬虫作为一个热门的方向,不管是在自己兼职还是当成辅助技能提高工作效率,都是很不错的选择。

      通过爬虫技术可以将相关的内容收集起来,分析删选后得到我们真正需要的信息。

      这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等,都能够借助爬虫技术获取更精准有效的信息加以利用。

      在这里插入图片描述

      Python爬虫视频资料

      在这里插入图片描述

      三、数据分析

      清华大学经管学院发布的《中国经济的数字化转型:人才与就业》报告显示,2025年,数据分析人才缺口预计将达230万。

      这么大的人才缺口,数据分析俨然是一片广阔的蓝海!起薪10K真的是家常便饭。

      在这里插入图片描述

      四、数据库与ETL数仓

      企业需要定期将冷数据从业务数据库中转移出来存储到一个专门存放历史数据的仓库里面,各部门可以根据自身业务特性对外提供统一的数据服务,这个仓库就是数据仓库。

      传统的数据仓库集成处理架构是ETL,利用ETL平台的能力,E=从源数据库抽取数据,L=将数据清洗(不符合规则的数据)、转化(对表按照业务需求进行不同维度、不同颗粒度、不同业务规则计算进行统计),T=将加工好的表以增量、全量、不同时间加载到数据仓库。

      在这里插入图片描述

      五、机器学习

      机器学习就是对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。

      机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。

      在这里插入图片描述

      机器学习资料:

      在这里插入图片描述

      六、Python高级进阶

      从基础的语法内容,到非常多深入的进阶知识点,了解编程语言设计,学完这里基本就了解了python入门到进阶的所有的知识点。

      在这里插入图片描述

      到这就基本就可以达到企业的用人要求了,如果大家还不知道去去哪找面试资料和简历模板,我这里也为大家整理了一份,真的可以说是保姆及的系统学习路线了。

      在这里插入图片描述
      但学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

      一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

      资料领取

      这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
      或者

      点此链接】领取

      好文推荐

      了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

      了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫是一种自动化程序,可以模拟浏览器行为来获取网页上的数据。然而,许多网站对爬虫有限制,采取了一些措施来阻止爬虫的访问。主要有两种方法可以限制爬虫的访问:一是通过robots协议告知爬虫哪些页面可以访问,哪些不可以访问;二是通过判断HTTP头来识别请求是否由爬虫引起,网站可以拒绝爬虫的请求。 如果你想爬取boss直聘的数据,可能会遇到一些反爬措施。在引用的代码块中,作者提到了一些手动改变数据信息的方法来规避反爬措施。例如,可以修改URL中的城市和职位信息来获取不同城市和职位的数据。这种方法可以在一定程度上减少被网站封禁的风险。然而,需要注意的是,这种不断改变数据信息的方法可能会使爬取数据量较少。 根据引用中的描述,爬取boss直聘数据涉及到对不同职位的要求进行解析。例如,数据分析师要求招聘者具备一定的数据分析和挖掘能力,并且熟悉Python、SQL、Excel等软件;数据挖掘师除了数据分析和挖掘能力外,还要熟悉深度学习算法,并且一些企业还要求熟悉Java、Hadoop、Spark、SQL等技术;数据架构师需要具备数据分析数据架构和大数据能力,熟悉Python、Java、SQL、Hadoop、Spark等软件和分布式技术;AI工程师需要对人工智能、视觉图像算法、自然语言处理、产品设计有一定了解,并且熟悉Python、C等编程语言。 综上所述,如果想要爬取boss直聘的数据,可以通过编写爬虫程序,并根据具体的需求解析网页上的职位信息和要求。同时,需要注意遵守网站的爬取规则,以避免被封禁或触发反爬措施。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python爬虫学习(一)爬取boss直聘一页数据](https://blog.csdn.net/weixin_45145550/article/details/112396820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [爬取boss直聘数据分析](https://blog.csdn.net/weixin_55018995/article/details/116902265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值