『Python』Python爬虫笔记:爬取单个页面
前言
学习Python爬虫技术也是一件需要大量实践的事情 , 因为并不是所有的网站都对爬虫友好 , 更多的一种情况是网站为了限制爬虫不得不在最小化影响用户体验的前提下对网站访问做出一定的限制 , 最常见的就是一些网站的注册和登录页面出现的验证码 。
本文插图
12306网站的验证码在很长一段时间内饱受诟病 , 最初其复杂程度已经影响到了用户交互体验 , 但是为什么12306没有选择为了用户体验而放弃验证码?因为验证码就像是一个门槛 , 它主要针对的并不是人 , 而是可能含有恶意的计算机程序 。 12306网站堪称掌握地表最强开发和维护技术 , 它每天运行的服务器压力几乎都等同于双十一 , 高峰时段的操作压力甚至远超双十一十几倍 。 这是个提供刚需服务的网站 , 稳定的重要性在一定程度上是大于用户体验的 , 如果没有验证码 , 那么程序就可以轻而易举的执行登录、注册等操作 。 像我上一篇文章中提到的自动抢票软件 , 刷新访问的频率越高 , 对12306服务器的压力就越大 。 12306也不能分辨屏幕前坐着的到底是不是人 , 所以只能采取最简单粗暴的人机识别方法:验证码 。
本文插图
扯远了,不过这也是我们后续会遇到的反爬虫手段之一 。
既然是爬虫 , 当然还是要先确认目标网站 , 这里推荐一个我认为非常不错的爬虫练习网站:镀金的天空
本文插图
这个网站中从易到难列出了8中反爬虫的挑战 , 今天要讲的就是其中的基础1:爬取单页数据并计算数据和
本文插图
分析页面元素 按下f12调出开发者工具选择我们需要操作的数据 , 注意这里需要我们记录下数据在html文件中的特征
本文插图
它是在一个名为col-md-1的div下的数 , 这个特征为我们之后的数据提取提供了依据 。 可能有的小伙伴不太懂html代码 , 这里简单提一下html语法的一些特性:
- 标签通常成对出现且分别用于闭合彼此(和我们之前讲的Python中的代码块相似 , 需要明确出元素开始和结束的位置)
- 标签通常可命名(本例中的class就是一种定义名称的方式 , 类似的还有id,作用相当于一个考场有50份题目一样的试卷 , 但是只有写了你名字的那个才算是你的试卷 , 同时也是为了定位到具体的数据)
- html代码中不同的标签有不同的定义关键字
- html中可内嵌css和javaScript代码 , 也可以从外部引入它们内嵌就是直接写在当前html文件中
- html,css,javascript默认代码可直接查看 , 因此敏感操作不要写在外部js文件中(把敏感信息写在html中也不行)
- html分head、body
- 不同标签可能有不同的属性
程序实现 与基础系列不同 , 为了尊重站长意愿 , 同时也为了大家能够更好的上手实践 , 涉及到glidedsky的文章将不会给出全部代码 , 但是会尽量讲清楚所涉及到的技术和部分代码 。
Python获取网页文本 网页访问分GET/POST/DELETE/PUT/OPTION几种不同的类型 , 最常用的是GET和POST请求 。 get请求的特点是所有参数及数据都显示在URL链接中 , 主要用于获取数据 , 对数据本身并不执行操作 , 所以我们写爬虫的过程中遇到比较多的还是get请求 。 POST请求主要用于向服务器传入数据 , POST请求的内容在浏览器页面上是不显示的 , 需要借助网页抓包工具 。 chrome浏览器的f12开发者工具可以查看到post请求及其内容
推荐阅读
- [笔记本电脑]乙辰科技正式发布首款WiFi6新品:北斗II号分布式无线路由器
- 笔记本硬盘升级改造计划,三星原厂闪存加持的康佳K520 SSD怎么样
- 【小谦笔记】修复诸多崩溃问题,安卓11迎来开发者预览2.1版本
- [硬顶科技]潮夜绿色彩,十代酷睿处理器加持,颜值笔记本又推新款
- 「数评时代」大家可以来抄了,如何打造顶级笔记本?华硕ROG双屏旗舰给出作业
- #数评时代#大家可以来抄了,如何打造顶级笔记本?华硕ROG双屏旗舰给出作业
- 科技小数据■Python培训完能够做数据分析类的工作吗?
- 「」宏碁传奇14笔记本预售 价格太疯狂啦
- 原呵呵▲ZephyrusDuo15笔记本电脑:双屏炫酷,华硕ROG
- 超能网:技嘉推出新AORUSu002FAERO系列笔记本:分别针对高端电竞和专业创作市场
