数据分析之小白的爬虫入门教学

346 篇文章 4 订阅
216 篇文章 1 订阅

数据是数据分析的基础,俗话说巧妇难为无米之炊,想要做好数据分析,必须先获得数据。

在去年的这个时候,我一直想自己尝试写个爬虫,我买了一本python的书籍,但是因为种种原因,当时自己学习的速度很慢,一直到最近才慢慢的会写一些简单的爬虫,那这篇文章的标题就定为,小白的爬虫入门教学,作为分享一下我的python爬虫的入门过程,如果你是一个大佬,还请多多指教呀,如果你是一个没什么了解过爬虫,但是又想学习的人,或许你可以看完这篇文章。

我一开始,也是只知道很多人用python写爬虫作为数据分析的工具,不知道爬虫的原理是什么,他们为什么又要用python来写。后来看来一些有关于爬虫的一些论文,对爬虫的原理和过程才有了一定的了解,其实爬虫运作的过程和我们平时用浏览器看网页是没什么差别的,只不过爬虫在访问了这些网站之后,会按照一定规则来将我们需要的信息获取下来,最后通过获取的信息就行数据分析。爬虫的过程大概可以描述为:向网站发起请求、获取网站响应内容、解析成python能读取的内容、最后将数据保存在本地或者数据库之类的地方。至于爬虫为什么选用python来写,是因为python提供了诸多方便使用的库,你只需要调用这些库,而不用自己去编写这些功能,方便而简单。下面我通过写一个简单的爬虫来帮助理解。

很多网上的大佬的教学都是写爬豆瓣相关的,我了解了一番之后,是因为豆瓣的反爬虫没有那么严格,只需要你的request带有header就行,而且豆瓣的数据都是比较好的json数据,算是挺方便的。所以这次的例子选择的是豆瓣的高分电影榜。

首先,我们要分析一下目标页面,看看他的运作规律什么的,首先打开豆瓣电影,选择更多,选择豆瓣高分,按评价排序,大概是下面的样子
在这里插入图片描述
下拉发现,这个页面大概显示了20部电影,想要显示更多就要点最下面的加载更多,不着急,通常点击加载更多的时候,如果不是跳到别的页面,那么他就是这个页面和站点有数据交换过,F12进入浏览器开发者模式,选择network标签,再选择xhr标签,你每点一次加载更多,站点就向你发送了一次数据,右键在浏览器中直接打开这个链接,你就可以查看他发的是什么,他的地址栏是
在这里插入图片描述
这个链接的大概意思就是,这是豆瓣高分电影里面,按照评分排序,并且这页只显示20部电影,并且这页是从第20的电影之后的20个电影,就是评分排21-40的20部电影,页面显示如下

可以看出站点向我们传输的数据就是这种格式的,包含了不少信息。知道了这种规律之后,我们是不是可以通过改变地址栏的数字来获取不同排行的内容呢,答案是肯定的,知道了运作的规律之后,我们就可以开始编写爬虫啦,下面直接贴出代码吧

-- coding: utf-8 --

import requests #这里导入到几个需要用到的库,想了解的直接百度库名,就不再赘述了

from fake_useragent import UserAgent

import json

import pandas as pd

import os

def doubanmovie():

limit=100

url=‘https://movie.douban.com/j/search_subjects?type=movie&tag=%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=rank&page_limit={}&page_start=0’

#这个url就是刚刚贴出的地址栏复制下来的,大括号等下用来format个数字进去

headers={“User-Agent”:UserAgent(verify_ssl=False).random} #伪装成浏览器

response=requests.get(url.format(limit),headers=headers) #发送请求

json_response=response.text

json_response=json.loads(json_response) #将获取到的文本转化成json数据

col=[‘title’,‘rate’,‘url’] #定义表格需要哪些表头

num=len(json_response[‘subjects’])

data=pd.DataFrame(index=range(num),columns=col) #使用用pandas库的对象

for i in range(num):

data.loc[i,‘title’]=json_response[‘subjects’][i][‘title’] #一条一条写进去

data.loc[i,‘rate’]=json_response[‘subjects’][i][‘rate’]

data.loc[i,‘url’]=json_response[‘subjects’][i][‘url’]

print(‘爬虫结束’)

return data

filename=‘豆瓣高分电影前100.xlsx’

data=doubanmovie()

data.to_excel(filename) #最后输出到本地

由于数据只选择爬了100条,所以很快就完成了,大概过程就是先分析了这个页面的数据传输方式,然后写的时候就先获取到这个数据,然后再转换成python对象,最后导出到本地。下面看一下爬到的数据的格式,
在这里插入图片描述
大概就是这些电影啦,数据大概是6月份爬好的。如果你想爬取更多的数据,或者说豆瓣限制了每次传输的数据只有有限的几条,只需要多一个循环连接的操作就可以啦。

这篇文章我在早前一个多月的时候就想写了,中间因为毕业的事,就业搬出学校,还有自己的懒惰…等等原因拖了好久,这篇文章浅浅的讲述了爬虫的原理,但这些数据并不够进行一些数据分析,我暂时有个更深入一点点想法,就是通过这个url继续获取这部电影的更多信息,打开链接是这样的
在这里插入图片描述
这上面的信息就多了,比如….好多,甚至下面还有一些评论,都是可以作为数据分析的来源,如果哪天实现了这个想法,就会有后续的。

好了,我是爱学习的惊尘(假装激励自己的flag),这篇文章能帮到你最好啦,也请路过的大佬多多指教。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

四、Python视频合集

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

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值