大神是在高三就开始接触Python,当时就深深的喜欢上了这个语言,而后在进入大学后,从大一到大四每天都会至少抽出三四个小时来研究这个,经常以接单的形式来检验自己的所学,所以一毕业就相当于有个几年的工作经验了!
第一次是学习的用Python爬图片,网上教程有很多,我也仅仅是可以实现,对于具体的思路方法还是一知半解,在代码过程中添加了很多对Python的新的理解,对编程这个大集合的更深层的理解。学习这么多年,整理了很多Python的学习资料,大家需要的话,可以私信我,发送资料二字就行了,我好知道谁是要资料的一个个发给大家!
网上的任何东西都可以看成资源,一个网站可能就是一段html+css,一张图片可能就是某个地址下的XXX.jpg文件,无数的网络资源存放在互联网上,人们通过地址(URL,统一资源定位符)来访问这些资源,大致过程如下:
用户在浏览器中输入访问地址,浏览器向服务器发送HTTP(或者HTTPS)请求(其中请求资源常用get请求,提交数据常用post请求,post也可做数据请求)。服务器接收到了这些请求之后找到对应的资源返回给浏览器,再经过浏览器的解析,最终呈现在用户面前。
这就是用户上网的一个简单的过程。那么,如果我们需要大量的从网上请求数据,依靠人工一个个得机械操作显然是不现实的,这时候爬虫就起作用了。
首先我们要明白爬虫是什么?
从本质上来说爬虫就是一段程序代码。任何程序语言都可以做爬虫,只是繁简程度不同而已。从定义上来说,爬虫就是模拟用户自动浏览并且保存网络数据的程序,当然,大部分的爬虫都是爬取网页信息(文本,图片,媒体流)。但是人家维护网站的人也不是傻的,大量的用户访问请求可以视为对服务器的攻击,这时候就要采取一些反爬机制来及时阻止人们的不知道是善意的还是恶意的大量访问请求(当然了= =不这样人家服务器吃枣爆炸)。
网站爬取过程中我们会碰到以下几种情况:
- 直接加载资源无处理
- 使用ajax异步加载
- 带参数验证的加载
- cookie验证
- 登录验证
- js加密
第一种无需解释,第二种是用户访问过程中异步向服务器发送请求会给筛选爬取数据增加难度,第三种是参数验证例例如时间戳,ip等,第四种是追踪验证用户的本地数据,第五种是身份验证,第六种是加载后对数据进行加密操作增加爬取难度。
本次学习只处理到第三层,带参数验证的网站加载。学习时爬取的是这个网站(如有打扰,十分抱歉)
先对这个网站进行分析。大部分都是套图,有一张图作为封面,并且,点击进入图片之后,有一个显示第一张图片的链接。
那么我们第一步可以在主界面的html代码中抽取出这些套图起始的链接地址,这里显然需要用到正则来提取这些不同地址。
那么,有了每个套图的起始地址之后,我们进入到子页面,刷新网页,观察它的加载流程。
这里我们可以观察到,仅仅是一张图片的加载就进行了如此多的工作,这个网站相对来说还是很复杂的(以后会放上一些相对来说不复杂的网页对比非常明显)
这里我们点击XHR,会发现chrome自动为我们筛选出了一个XHR对象,这是其使用ajax技术的证明,点击之后我们发现里边带的json数据跟我们想要的套图信息其实是一致的。
随意点开一个发现里边的信息都是键值对的形式存在着,这里我们发现source一栏,选定该地址新建标签访问。
这就是这张图片在网络上的地址(URL,统一资源定位符)
至此分析全部结束。
我们需要理清楚我们到底要做什么。
- 抓取主页面HTML代码,筛选出所有的套图链接
- 从套图页面中获取json,从信息中获取该套图的全部URL
- 根据URL下载图片到本地
- 重复2,3
下面分享一个学习使用的代码:
代码仅供参考回顾,重要的还是要自己多多练习。想学会就必须坚持,睡也想醒也想,持续强烈的愿望更重要!
声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者华夏编程之家所有,原文出处。若您的权利被侵害,请联系删除。
本文标题:(爬虫自学难度大吗)(爬虫学得好)
本文链接:https://www.51qsb.cn/article/m8gc4.html