• 爬虫 (一)


    1、爬虫的概念

    ​ 概念:Spider(网络蜘蛛),通过互联网生的一个个的节点,获取其中的数据,然后进行分析存储

    ​ 爬虫的三个过程:数据的获取、数据的分析、数据的存储

    ​ 爬虫的分类

    ​ 通用爬虫:

    ​ 主要用于搜索引擎,百度、谷歌、360、必应等

    ​ 工作原理:

    ​ 数据的获取=>网页的分析=>数据的存储=>对数据进行过滤清洗=>通过一个检索服务给用户提供搜索的窗口(这个就是一个普通的web网站)

    ​ 所有引擎是如何获取数据的:

    ​ 1、通过百度蜘蛛爬取(百度蜘蛛掌握了整个互联网的拓扑),速度较慢

    ​ 2、自身角度:主动的把接口提交给百度(百度的蜘蛛就会比较快的识别到)

    ​ 3、百度的角度:和DNS运营商合作,把一些有价值的网站收录

    ​ 网站的排名规则(SEO):

    ​ 1、通过流量来排名,通过点击量用户量等指标

    ​ 2、在其他网页中设置友情链接

    ​ 3、竞价排名,谁给的钱多,谁排在前面

    ​ robots协议:

    ​ 搜索引擎的蜘蛛在去爬取网页的时候,首先会去读取该网站的robots.txt文件,根据文件的规定去爬取响应的内容(允许的拿走,不允许的别动),如果某个网站没有robots.txt文件,搜索引擎蜘蛛就会把网站中所有的内容爬取

    ​ 【注意】robots协议在做搜索引擎的时候是必须要遵守的,对于我们而言不用管

    聚焦爬虫:

    ​ 根据客户(或者个人)的需求去定制的爬虫

    ​ 工作原理:

    ​ 三个过程

    ​ 1、数据的抓取

    ​ 技术:http协议、url处理等,框架:urllib、requests、scrapy等

    ​ 反爬策略:ip禁止、通过检测访问的频率来禁止ip、设置用户代理、设置验证码等 主要是阻止客户端向服务发送请求

    ​ 2、数据的分析

    ​ 技术:数据类型(html、json、xml、js等),框架:xpath、bs4、selenium+webdriver等

    ​ 反爬:js数据、加密数据

    ​ 3、数据的存储

    ​ 技术:数据的清洗;csv数据、txt、MySQL、redis等

    ​ 爬虫的核心:处理反爬机制许多网站为了保护自己的信息,会做一些反爬。爬虫最终要解决的问题就是如何解决反爬问题(所有的反爬策略最终都是可以解决的,只是时间和金钱代价的问题)

    2、HTTP协议

    ​ 1、什么是HTTP协议?

    ​ 1)基于请求与响应的应用层协议,底层是TCP,传输层可靠;2)通过url来进行客户端与服务器之间的交流 3)是一种C/S(B/S)模式的协议,客户端通过url向服务器发起请求,服务器对请求进行处理然后响应 4)该协议无状态(即不保存客户的会话信息)

    ​ 2、http协议过程:

    ​ 1)创建TCP链接:客户端与服务器进行三次握手: 客户端向服务器发起一个请求是否创建链接信号、服务器回应给客户端是否建立链接、客户端向服务器发出创建链接的信号进而建立链接;三次握手以后,客户端和服务器就建立了一个数据的通路,就可以把一些应用层的数据包进行传递

    ​ 2)客户端向服务器发出请求:通过url把数据参数传递给服务器,请求的方式有4种,常见的是get和post

    ​ 请求头:请求头中包含整个请求的配置信息(决定了这次请求的的性质)

    ​ 请求体:就是参数

    ​ get请求和post请求

    ​ 形式上:get的请求体(参数)是拼接在url后面的,post的的请求体在url中不体现

    ​ 内容上:get默认限制一定的大小(不同的浏览器对url最大长度的要求不一样),post请求默认是不限制长度的(有时候web服务器会对其(上传)作限制,比如阿帕奇限制20M)

    ​ 3)服务端处理客户端的请求,然后把处理结果响应给客户端(通过url)

    ​ 4)关闭连接:TCP的四次挥手

    ​ 面试题:

    ​ 1、请您解释一下什么是http协议?

    ​ 2、请谈一下get和post的区别

    ​ 3、http协议和https协议有什么区别?

    ​ 4、http协议的常见状态码,及其含义?

    ​ 5、如何取配置https协议?

    3、环境

    ​ windows或linux,python3.6 , pycharm(sublime), 后期(scrapy和redis数据库)Ubuntu系统

    4、fiddler

    ​ 抓包工具

  • 相关阅读:
    css选取第几个元素的方法
    如何瓦解巨石单页应用
    C#获取本地或远程磁盘使用信息
    文档管理使用语雀
    位运算反(~)与(&)异或(^)或(|)右移(>>)左移(<<)
    面试题大全
    关于普通盒子模型contentbox和怪异盒子模型borderbox
    vue3.0和vue2.0的区别是什么?
    .NET Core(.NET6)中gRPC注册到Consul
    alifd的深度教程
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9723874.html
Copyright © 2020-2023  润新知