前言好久不更新了。不知道粉丝们是不是着急了。我正在准备年度工作报告。我们还不知道这东西有什么用。反正每个公司都需要这样的东西。其中,最让我头疼的就是futureoutlook这个环节。如果我能预知未来,我早晚会去买彩票发财,所以我还是在这里写一些计划给你。不过谁让你当老大了,哎,所以,没办法,就是上网找资料或者一些资料,写下以后的打算,正好,反正年底了,没啥可做的,闲就是闲,我只是打了几个兼职,赚了点钱回家给晚辈发红包!不知道大家有没有遇到过这样的困境。在网上搜索一些资料的时候,发现网上关于python爬虫的案例讲解比较少而且比较零散。和爬虫有关,今天就给大家简单介绍一下爬虫的相关内容。闲来无事可以自己练习和玩耍。说到爬虫,简单的理解就是我们想把我们在网页上查看的某部分内容保存到本地。我们为什么这么说?比如大家知道,我们在浏览器上浏览某个网站信息的时候,他其实是去后台请求相应的数据,然后后台服务器响应数据请求,将数据返回给我们的前端接口(也是业务面大家可以看到),说起来有点复杂,先看一张图流程一般来说:浏览器提交请求->下载网页代码->解析/渲染into页面和爬虫要做的事情其实非常简单易懂。既然你在浏览器中查看某些信息,就是一个与服务器通信的过程,那么你现在要求的不就是模拟浏览器的一个行为,然后将数据存储到本地吗?流程如下:模拟浏览器发送请求->下载网页代码->只提取有用的数据->存入数据库或文件并用图说明实现过程如下自整理之前有一个爬虫的工作原理,接下来的事情就不简单了,我们只看代码实现过程,写代码首先是技术含量最低的,获取数据的请求地址,因为现在要模拟浏览器的一个行为,那么我们至少要知道数据的一个请求地址。那是网址。我今天给大家源码的时候爬取了B站的弹幕,所以我就以此为例来说明如何找到url。首先,前面说了,我们前面说了,我们需要先模拟一个网站发起一个请求,那么我们要查的应该是一个请求url注意:什么是request使用http库发起一个请求向目标站点请求,即发送一个RequestRequest包含:请求头,请求体等。我们按F12打开开发者模式,然后点击页面上的弹幕列表。选择要查看的弹幕日期后,下方控制台会出现以history开头的选项。点击它,我们会看到requesturl选项号。二、模拟用户请求主要包括两个方面,用户模拟和登录模拟用户模拟因为我们现在是模拟浏览器向服务器发起请求,就好像一个陌生人敲你的门,在这种情况下,你会开门吗?不行,我们假扮亲戚朋友,你就开门。在请求中,我们有一个用户代理(user-agent)来指示我们的身份选项。注:UserAgent中文称为UserAgent,简称UA,是一个特殊的字符串头,可以让服务器识别操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件-in等,由客户端使用。上面模拟登录的问题解决了,同时也引出了下一个问题。我们在查看这些信息的时候,使用的是已经登录过的账号,在没有登录的时候,是无法查看历史弹幕数据的,我们在模拟的时候如何对登录行为进行建模呢?这时候,就不得不提到浏览器的一个行为。当我们登录一个网站,再次访问时,往往不需要重新登录,所以为什么?这是因为当你登录时,浏览器会在本地生成一个cookie。cookie与特定的网络文档相关联,并在客户端访问该网络文档时保存信息。当客户端再次访问该web文档时,该文档的信息是可用的。这样,我们的直接访问行为就完成了。也就是说,只要我们获取了这个cookie,我们访问后台服务器时就不需要进行任何登录操作。第三步一气呵成:请求数据经过以上步骤,我们就成功向服务器发起了请求。当你执行完前面的步骤后,你会得到这样的结果,这意味着我们已经成功连接到服务器了。响应状态200:表示成功301:表示跳转404:文件不存在403:权限502:服务器错误接下来我们需要通过我们传入的user-agent和cookie来判断我需要什么数据,得到请求的数据url,就是这样的结果。第四步,对第一步进行数据分析在第三步中,我们已经得到了相应的数据信息,但是我们只需要其中的一部分,所以我们需要对其进行分析,只留下我们需要的数据,至此,数据爬取的工作就完成了,一个数据爬虫的工作就到此结束了。希望你没事的时候可以自己做。以下是我实现的代码。大家可以参考代码自己实现,为了照顾刚接触这块的朋友,所以这里写的比较详细,一些小知识点就不做解释了。毕竟还是要写一份辛苦的年终总结#打打B站阅梦#什么是模块:模块就是用一堆代码实现一些功能的代码集合,通常是一个或多个功能写在.py文件中importrequestsurl='https://api.bilibili.com/x/v2/dm/history?type=1&oid=260575715&date=2020-12-20'#如何获取信息路径下#urllib(python自带)request(第三方模块)#dictionary:dictionary是python中的一种数据类型,其特征是元素无序且键唯一。创建字典的方法是{key:values}getdata=requests.get(url)print(getdata)headers={#user-agent,就好像我们去拜访某人的房子,但是如果主人不'不认识,我当然不会给你开门,但是如果你假装成他认识的人,比如伪装,他会不会给你开门?#模拟浏览器行为'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/87.0.4280.88Safari/537.36',#cookie:当我们登录时,我们会输入用户名和密码,然后我们登录的时候就不用再登录了,所以这个地方是因为账号和密码信息缓存在一起了#想自己实现的时候需要替换使用您自己的“cookie”:“_uuid=326F06D1-FE8D-9191-42CE-DD309D14353C67633infoc;buvid3=33D869DB-6F2F-4BB0-B607-1B7B34F07CFD53925infoc;sid=4lmxv7lu;rpdid=|(uJmRYk|l|kRR|;dy_spec_agreed=1;LIVE_BUVID=AUTO2815973097085458;blackside_state=1;CURRENT_FNVAL=80;bp_video_offset_26390853=467157764523510086;bp_t_offset_26390853=467157764523510086;fingerprint=073aaf7f9d22ae55cfafd954c7f31b26;buivd_fp=33D869DB-6F2F-4BB0-B607-1B7B34F07CFD53925infoc;buvid_fp_plain=BCE2280A-DF5C-4872-98E2-4002159A716F143082infoc;PVID=3;bfe_id=fdfaf33a01b88dd4692ca80f00c2de7F;buvid_fp=33D869DB-6F2F-4BB0-B607-1B7B34F07CFD53925信息;DedeUserID=26390853;DedeUserID__ckMd5=8d24b1d50476c5e5;SESSDATA=c6386003%2C1624877887%2Ca501d*c1;bili_jct=704cf795ee7a134f74dd244b80c5107d"}resq=requests.get(url,headers=headers)resq.encoding='utf-8'print(resq.text)#
