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、总结

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

python爬虫一:爬虫简介相关推荐

  1. Python爬虫之初识简介以及舆情系统简介【爬虫篇一】

    目录 爬虫简介 爬虫基本操作 爬虫的作用: 舆情系统: 简单示例: 爬虫简介 爬虫技术的形成(搜索公司的出现) 第一阶段:大黄页(自己建立一个文档,记录域名 和该域名作用) 第二阶段:搜索公司出现,收 ...

  2. Python爬虫——网络爬虫简介

    文章目录 Python爬虫--网络爬虫简介 1.爬虫介绍 2.爬虫的应用 3.爬虫的分类 Python爬虫--网络爬虫简介 1.爬虫介绍 网络爬虫(Web Spider)又称"网络蜘蛛&qu ...

  3. Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)

    文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...

  4. 目前网络上开源的网络爬虫以及一些简介和比较

    2019独角兽企业重金招聘Python工程师标准>>> 目前网络上开源的网络爬虫以及一些简介和比较 目前网络上有不少开源的网络爬虫可供我们使用,爬虫里面做的最好的肯定是google ...

  5. 跟我学爬虫-1-爬虫简介

    网络爬虫简介 所谓爬虫,其实就是自动从互联网上获取网页信息的程序或者脚本,甚至简单到一两行代码,只要能达到自动获取信息的目的,都可以称之为爬虫. 本系列文章主要是为那些希望加入爬虫界的小白们准备的,水 ...

  6. 网页爬虫python代码_《用python写网络爬虫》完整版+源码

    原标题:<用python写网络爬虫>完整版+源码 <用python写网络爬虫>完整版+附书源码 本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中 ...

  7. Python之父推荐!《Python 3网络爬虫开发实战》第二版!文末送签名版!

    很多读者会让我写爬虫方面的书籍,我也一直没写,没写的原因主要有两个,第一个就是在爬虫方面我其实不是很擅长,第二个原因就是因为在爬虫领域庆才已经做的足够好了,我写不一定能写出庆才这水平的,所以也就一直没 ...

  8. 用python写网络爬虫 第2版 pd_用Python写网络爬虫(第2版)

    用Python写网络爬虫(第2版)电子书 畅销的Python网络爬虫发实战图书全新升级版,上一版年销量近40000册. 针对Python 3.6版本编写. 提供示例完整源码和实例网站搭建源码,确保用户 ...

  9. 初识爬虫,爬虫原理?爬虫是什么?为什么爬虫用python比较流行?

    文章目录 什么是爬虫? 为什么需要爬虫? 企业获取数据的⽅式? 为什么选择python 爬虫原理 爬虫分类 通⽤⽹络爬⾍ 聚焦⽹络爬⾍ 增量式⽹络爬⾍ 深层⽹络爬⾍: robots协议 什么是爬虫? ...

  10. 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

    OpenCV图像处理入门学习教程系列,上一篇第五篇:基于背景差分法的视频目标运动侦测 一.网络爬虫简介(Python3) 网络爬虫,大家应该不陌生了.接下来援引一些Jack-Cui在专栏<Pyt ...

最新文章

  1. nable to execute dex: Multiple dex files define Lcom/chinaCEB/cebActivity/R
  2. PHP学习系列(1)——字符串处理函数(3)
  3. ArcIMS体系结构
  4. linux中的fg命令
  5. python实现 多叉树 寻找最短路径
  6. 在NumericStepper控件中使用嵌入字体显示数字.
  7. batch spring 重复执行_Spring源码高级笔记之——Spring AOP应用
  8. FPGA资源不足导致vivado生成bit失败
  9. Ubuntu系统下载安装启动Docker
  10. java实现代理服务器
  11. linux查看udp丢包数量,Linux下UDP丢包问题分析思路
  12. Spring Boot layered(分层) jar 构建docker镜像
  13. shell 中 if[X$1 = X];then 什么意思
  14. u盘文件突然不见了怎么样才能恢复呢?
  15. Intel VT-d(1)- 简介
  16. 自动生成代码的chm格式帮助文档
  17. 96Boards MIPI CSI Camera Mezzanine
  18. 曲线救国使用图片url
  19. .tga图片的文件格式分析
  20. 科学计算机可以带上飞机吗,笔记本电脑可以随身带上飞机吗

热门文章

  1. 科学计算机技术标准差,自动化技术_计算机技术_
  2. 自制操作系统日志——第二十五天
  3. 基于Java Springboot+Vue+MyBatis音乐播放系统设计实现
  4. [AS日记]MacOS的Android Studio卡在Building Gradle Project info走不动 的处理方法
  5. 教程:晶莹剔透的水滴绘制过程
  6. 谈谈UCloud保障数据安全的七种“武器”
  7. 关于生僻字乱码的问题
  8. 求1-1/2+1/3-.....+1/99-1/100
  9. 雷锋工厂模式(笔记)
  10. Networkx如何画点图并显示边权