python爬虫一:爬虫简介

2023-11-09

1、什么是爬虫

⽹络爬⾍(⼜被称为⽹⻚蜘蛛,⽹络机器⼈)就是模拟客户端发送⽹络请求, 接收请求响应,⼀种按照⼀定的规则,⾃动地抓取互联⽹信息的程序。 只要是浏览器能做的事情,原则上,爬⾍都能够做(可见即可爬)

1.1爬虫有哪些用途

①为其他数据提供数据源,像AI人脸识别、AI人工智能都要基于大数据的基础下才可以实现
②快速批量的获取想要的数据,不用手动的一个个下载(图片、文字音视频等)
③抓取想要的数据做数据分析,做商业预测(美团评论、股票涨跌等)
④抓取vip数据,不用购买vip就可以免费获得vip数据(慎用设计版权在法律的边缘)
⑤模拟人的点击行为,做一些实时的动作(抢票、短信轰炸等)
注意:不可获取个人信息,不可制造恶意程序,侵犯他人权益(要遵纪守法)优秀的爬虫工程师一定要学好法律,不然就凉凉

1.2用python做爬虫的优势

①在python没有火之前大家都是用的Java做的爬虫但是代码量⼤,代码笨重用且复杂,需要一定的基础。
②用Python做爬虫就相对简单,因为它⽀持模块多、代码简介、开发效率⾼ (scrapy框架),只要少量代码就可批量抓取数据,丰富的第三方库为他提供了很多遍历
③用PHP对多线程、异步⽀持不太好
④用C/C++做爬虫代码量⼤,难以编写

1.3爬虫的分类

①通用网络爬虫(传统搜索引擎百度、谷歌必须遵守robot协议)
②聚焦网络爬虫(有目的有选择的爬取数据):我们写的就是聚焦爬虫
③增量式网络爬虫(聚焦包括它,更新爬取信息)
④深层网络爬虫(看不见的数据)

2、浏览器的工作原理

2.1学爬虫为什么要了解它

google、firefox等都是常用的浏览器(程序员常用google因为它支持的js内核更轻量,访问同一个网站他最快加载出来,但国内被封了,也可以用),我们抓取数据就是模拟浏览器的行为去得到数据
在这里插入图片描述

①经过浏览器渲染后的html代码,可能源码中没有
②控制台,调试前端代码用写的是javascript(这门语言爬虫工程师可以不会但要了解,往后看会逐渐涉及)
③资源,浏览器向服务器请求的所有资源都在这里但也写得是js代码,为什么可见即可爬就因为所有数据都可以获取到(但是有些数据要解密,短发很难,特别难)
④网络,网络传输的各种api(应用程序接口)都可以在这里面找到,你想抓取数据,就要分析他在哪个api有的直接在源代码中就不用分析。
重点
最重要的是①④③三个框(现在不懂没事,往后越看就越深刻越懂)
简单爬虫会用①④(初级爬虫工程师)
深入会用到③(高级爬虫工程师)②只做了解调试js用的

3、数据获得的过程

3.1流程

①找到对方ip(通过DNS找到ip发送请求)
② 数据要发送到对⽅指定的应⽤程序上。为了标识这些应⽤程序,所以给这些 ⽹络应⽤程序都⽤数字进⾏了标识。这个数字就叫做端⼝。(每个操作系统只有65535个端口,常见端口要记住面试可能会问比如你知道端口号6379是什么吗)端口号可以自己修改但是建议不要
③定义通讯规则。这个通讯规则我们⼀般称之为协议
补充:什么是ip(要区分内网ip和外网ip)爬虫用不到哈哈哈,多了解一点
在这里插入图片描述

3.2 通讯协议

①国际组织定义了通⽤的通信协议 TCP/IP协议。
②所谓协议就是指计算机通信⽹络中两台计算机之间进⾏通信所必须共同遵守的规定或规则。
③HTTP⼜叫做超⽂本传输协议(是⼀种通信协议) HTTP 它的端⼝是 80。https就是一种更加安全的加密协议http+ssl(secure socket layer)

4、网络模型

在这里插入图片描述
在这里插入图片描述

4.1什么是HTTPS

①https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的
②https,是以安全为⽬标的HTTP通道,简单讲是HTTP的安全版。即HTTP下 加⼊SSL层,HTTPS的安全基础是SSL

4.2SSL怎么理解

SSL也是⼀个协议主要⽤于web的安全传输协议(secure socket layer)
在这里插入图片描述

4.3Http请求与响应

HTTP通信由两部分组成: 客户端请求消息 与 服务器响应消息

在这里插入图片描述

①当⽤户在浏览器的地址栏中输⼊⼀个URL并按回⻋键之后,浏览器会向HTTP 服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种⽅法。
②. 当我们在浏览器输⼊URL http://www.baidu.com 的时候,浏览器发送⼀个 Request请求去获取 http://www.baidu.com 的html⽂件,服务器把 Response⽂件对象发送回给浏览器。
③浏览器分析Response中的 HTML,发现其中引⽤了很多其他⽂件,⽐如 Images⽂件,CSS⽂件,JS⽂件。 浏览器会⾃动再次发送Request去获取 图⽚,CSS⽂件,或者JS⽂件。
④ 当所有的⽂件都下载成功后,⽹⻚会根据HTML语法结构,完整的显示出来了。

5、常用的几个概念

5.1请求方法GET和POST(后面的文章会详细的讲现在先了解一下)

GET:查询的参数会在URL上显示出来
POST:查询的参数和需要提交的数据是隐藏在From表单里的,不会在URL地址上显现出来

5.2URL组成部分

URL: 统⼀资源定位符 https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
https: 协议
new.qq.com: 主机名可以将主机理解为⼀台名叫 news.qq.com 的机器。这 台主机在 qq.com 域名下 port 端⼝号: 43/new.qq.com
在他的后⾯有个 :80是http的端口号43可以省略
TWF20200/TWF2020032502924000.html 访问资源的路径
#anchor: 锚点⽤前端在做⻚⾯定位的
在浏览器请求⼀个url,浏览器会对这个url进⾏⼀个编码。(除英⽂字 ⺟、数字和部分标识其他的全部使⽤% 加⼗六进制码进⾏编码)
例如 : https://tieba.baidu.com/f?ie=utf8&kw=%E6%B5%B7%E8%B4%BC%E7%8E%8B&fr=search
%E6%B5%B7%E8%B4%BC%E7%8E%8B = 海贼王**

5.3 User-Agent

记录⽤户的浏览器、操作系统等,为了让⽤户更好的获取HTML⻚⾯效果

5.4Refer

表明当前这个请求是从哪个url过来的。⼀般情况下可以⽤来做反爬的技术数据来源

5.5状态码

200 : 请求成功
301 : 永久重定向
302 : 临时重定向
403 : 服务器拒绝请求
404 : 请求失败(服务器⽆法根据客户端的请求找到资源(⽹⻚))
500 : 服务器内部请求

6、总结

端口号和状态码比较重要,其余的理解就好,多用多查就会加深理解,如果你喜欢的话期待你的关注点赞加收藏

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬虫一:爬虫简介 的相关文章

随机推荐

  • 【学习笔记】python实现excel数据处理

    概述 Excel固然功能强大 也有许多函数实现数据处理功能 但是Excel仍需大量人工操作 虽然能嵌入VB脚本宏 但也容易染上宏病毒 python作为解释性语言 在数据处理方面拥有强大的函数库以及第三方库 excel作为主要基础数据源之一
  • MySQL中的事务(隔离性详解)

    1 什么是事务 事务是指逻辑上的一组操作 组成这组操作的各个单元 要么全部成功 要么全部失败 通俗的说一组SQL语句 要么全部执行成功 一条语句出错则全部出粗 在不同的环境中 都可以有事务 对应在数据库中 就是数据库事务 2 为什么使用事务
  • RobotFramework学习系列--(一)

    测试工作需要用到了RobotFramework 之前只是使用 用了一段时间后 决定深入研究一下它 使用平台为Windows Linux 由于是基于Linux 系统方面的测试工作 使用的RobotFramework版本为2 8 5 先简单介绍
  • 强力推荐:Atom入坑必备插件

    You are my warm gloves my cloud beer my sun kissed shirt my day after day dreams 你是我温暖的手套 冰冷的啤酒 带着阳光味道的衬衫 日复一日的梦想 强力推荐 A
  • vue 快速入门--快速使用vue2

    关于mvvm的理解 说到mvvm 就要提到vue的优点了 vue有什么优点呢 更改变量很容易 具有即时性 这是我们广泛所知道的 vue的优点 在原来只有jquery的时候 我们改变一个元素的值的时候 我们需要深入到原代码里 重新绑定元素啦
  • C51数码管显示

    一 数码管简介 LED数码管 数码管是一种简单 廉价的显示器 是由多个发光二极管封装在一起组成 8 字 型的器件 管按段数可分为七段数码管和八段数码管 八段数码管比七段数码管多一个发光二极 管单元 也就是多一个小数点 DP 这个小数点可以更
  • 通过关键词模拟百度搜索并爬取前30页的URL

    想快速获取到百度搜索结果原始URL 一次一次输入搜索太慢了 所以就写了一个小爬虫 效率提升10000倍 平均耗时一个关键词爬取百度搜索结果前30页的链接耗时4秒内 1 你要准备一些搜索词 我的环境下我的搜索词是放在 key file pat
  • ini文件的读取

    ini文件 每行末尾有换行符 每个section之间有一空行 文件 0 id 0 key2 def key start 456 end 78 1 id 1 key1 abc key start 123 end 456 代码示例 includ
  • 2023-数仓建设规范指南

    一 数据模型架构原则 1 数仓分层原则 优秀可靠的数仓体系 往往需要清晰的数据分层结构 即要保证数据层的稳定又要屏蔽对下游的影响 并且要避免链路过长 那么问题来了 一直在讲数仓要分层 那数仓分几层最好 目前市场上主流的分层方式眼花缭乱 不过
  • MySQL中神奇的show命令详解

    show binary logs 列出服务器上的二进制日志文件 show binlog events 显示二进制日志中的事件 show character set 显示所有可用的字符集 show collation 列出服务器支持的排序规则
  • 全网最全的Postman接口自动化测试(史实级攻略)

    背景 该篇文章针对已经掌握 Postman 基本用法的读者 即对接口相关概念有一定了解 已经会使用 Postman 进行模拟请求的操作 当前环境 Window 7 64 Postman 版本 免费版 Chrome App v5 5 3 不同
  • Laravel项目线上服务器docker化部署实战全过程记录指导(转 2021-04-02)

    最近 笔者终于在重重困难之下 完成了自己的第一个laravel项目 有什么感受呢 当然就是laravel虽然体型大 但是功能也更全了 总起来说 是一个在php后端领域值得深入挖掘 日积月累的框架 项目的本地开发和测试都已经完成 那么接下来面
  • MySQL常用函数、关键字解析。

    目录 引言 一 数据库简介 二 SQL语句 三 MySQL常用函数 数学函数 日期函数 MySQL其他命令 四 Navicat快捷键 引言 暂时只想起来这些 有需要补充的或者文章内出现的错误欢迎指正 评论 or 私信 请努力提升自己 划重点
  • 一次另类的由kjournald日志进程引起的磁盘io问题的解决

    http www 5ilinux com 2012 11 kjournald io html 最近linode的服务器做cacti的监控测试 偶尔发现服务器最近几周的io成几何级增长 而同期的cpu负载却发现无太明显的几何级的增长 好在li
  • 电流电压双闭环PID控制以及C语言实现

    对于电流电压双闭环PID控制 我们需要先了解一下PID控制的原理 PID控制器是由比例 P 积分 I 和微分 D 三个部分组成的控制器 用于控制具有惯性和滞后响应的过程 PID控制器需要通过测量误差 计算出控制输出 以便实现系统稳定 在电流
  • Qt的QMessageBox消息弹窗

    Qt的消息弹窗QMessageBox Qt的消息弹窗QMessageBox 1 说明 2 6种消息框 3 QMessageBox StandardButton 枚举类型值 3 1 information消息对话框 3 1 1 informa
  • RabbitMQ 消息有效期问题

    目录 一 默认情况 二 TTL Time To Live I TTL 的简介 II 单条消息过期 III 队列消息过期 IV 特殊情况 三 死信队列以及死信交换机 I 死信交换机 II 死信队列 III 具体操作 一 默认情况 在默认情况下
  • html 模板

    模板王 10000 免费网页模板 网站模板下载大全 mobanwang com http www mobanwang com
  • IEEE Transactions模板中参考文献作者缩写、期刊名缩写

    IEEE Transactions模板中参考文献作者缩写 期刊名缩写 本文章记录如何在IEEE Transactions的模板中 解决参考文献的作者缩写 期刊名字缩写的问题 目录 IEEE Transactions模板中参考文献作者缩写 期
  • python爬虫一:爬虫简介

    1 什么是爬虫 络爬 被称为 蜘蛛 络机器 就是模拟客户端发送 络请求 接收请求响应 种按照 定的规则 动地抓取互联 信息的程序 只要是浏览器能做的事情 原则上 爬 都能够做 可见即可爬 1 1爬虫有哪些用途 为其他数据提供数据源 像AI人