python爬虫

一、python爬虫

爬虫的概念

通过代码从互联网上获取数据,并且对这些数据进行提取、分析、以及清洗与整合存储

爬虫的分类:

1、通用爬虫

通用爬虫的概念:根据互联网的拓扑结构不断去爬取新的内容,然后把这些内容放入搜索引擎的数据仓库中

通用爬虫的用途:用于搜索引擎

搜索引擎分两部分:

  • 检索系统
  • 通用爬虫

搜索引擎现在获取数据的渠道:

  • 通用爬虫

  • 主动提交

robots协议

robots协议并不是技术层面的协议,是一个君子协定(可遵守可不遵守);
首先爬虫在访问一个网站的时候,首先会拿到这个网站的robots.txt文件(不是所有的网站都有),
拿到这个文件以后,从这个文件中提取相关信息,这些信息会规定哪些爬虫可以爬虫网站的哪些内容,
允许爬的则爬取,不允许的则不能爬取。如果是做搜索引擎一定要严格遵守网站的robots协议。

2、聚焦爬虫

聚焦爬虫的概念:根据客户或者公司的需求来定义一些针对性较强的爬虫

聚焦爬虫的工作原理

1.数据的抓取

主要问题:http协议

反爬:用户代理、ip禁止、验证码、会话处理等

2.数据的解析

主要问题:如何把获取的数据提取出有价值的信息

主要框架:re、xpath、bs4、jsonpath等

遇到的数据类型:html、json、js数据、xml数据等

3.数据的存储

csv文件、redis数据库、json数据、mysql等

二、HTTP协议

1、http协议简介

  • (1) 是一个基于请求与响应的应用层协议,底层协议是TCP保证其可靠传输
  • (2) 通过url来进行客户端与服务器之间的交互(url的解释:统一资源定位符,用于定位互联网上的资源的位置;格式, 协议://主机名.域名:端口号/路径…?参数1=值1&参数2=值2&…#锚点)
  • (3) 是一种C/S(或者b/s,b/s是一种特殊的c/s)模式的协议,客户端发起请求,服务器接收请求并且处理然后做出响应
  • (4) 是一种无状态协议

2、http的创建过程

1.创建TCP链接:三次握手

首先客户端发起一个是否同意创建TCP链接的请求;
然后服务器根据自身的条件决定是否能够创建链接,并且把这个决定的结果响应给客户端;
如果服务器同意客户端再次发起一个信号创建链接;

一旦链接创建好,就可以进行http通信。

2.客户端发起http请求

通过url把请求头和请求体提交给服务器相关的后台处理程序,
常见4种请求方式:get、post、put、delete,常用的是get和post

请求头:包含的是本次请求的相关配置信息(比如:主机、cookie等),决定了前端和后台数据交互的方式与格式

请求体:就是参数、即客户端向服务器提交的内容

3.get和post的区别

  • (1) GET的参数拼接在url后面,post的参数不在url中体现而是放在表单中提交

  • (2) get请求的有最大提交限制(因为浏览器对url的长度有限制),post没有

  • (3) 服务器接收请求,并且处理请求,然后将处理的结果响应给前端

  • (4) 判断数据是否还有传输,如果没有则通过四次挥手断开TCP链接

三、HTTPS协议

1、HTTPS简介

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

  • (1) HTTPS由两部分组成:HTTP+SSL/TLS
    也就是在HTTP上又加上了一层处理加密信息的木块。
    服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据

  • (2) HTTPS是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息

  • (3) HTTPS使用安全套接字层(SSL)进行信息交换

  • (4) HTTPS是有Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送的结果

  • (5) HTTPS世界上应用了Netscape的安全套接字层SSL作为HTTP应用层的子层

  • (6) HTTPS使用端口是443,而不是像HTTP那样使用端口80来和TCP/IP进行通信

关于http和https协议,可参考
https://blog.csdn.net/zhaozao5757/article/details/79523062
https://blog.csdn.net/weixin_34162629/article/details/91378269
等其他文章

四、抓包工具

1、抓包工具原理

在这里插入图片描述

2、fiddle安装

文件链接(windows版本)
链接:https://pan.baidu.com/s/1x0KwrXO1x0GIUBCTk768TA
提取码:rf90

安装后可能出现的问题:
1.更新,可更新可不更新
2.使用的时候要求安装证书,会自动提醒,安装即可
在这里插入图片描述
这些勾打上勾
在这里插入图片描述
3.有个人服务器的,可能与服务器代理有冲突,尽量不要开启服务器的时候用此工具抓包

3、fiddle常见的图标

在这里插入图片描述
fildder 4的界面和浏览器右键检查的调试界面有类似的地方
在这里插入图片描述

4、http请求

http请求包含: 请求行 请求头 请求内容

常见请求头

  • accept :浏览器通过这个头告诉服务器,所支持的数据类型
  • Accept-Charset:浏览器通过这个头告诉服务器,所支持哪种字符集
  • Accept-Encodingt:浏览器通过这个头告诉服务器,所支持的压缩格式
  • Accept-Language:浏览器通过这个头告诉服务器,所支持的语言环境
  • Host:浏览器通过这个头告诉服务器,想访问哪台主机
  • If-Modified-Since:浏览器通过这个头告诉服务器,缓存数据的时间
  • Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 (防盗链)
  • Connection:浏览器通过这个头告诉服务器,请求完后是断开连接还是支持链接
  • Transfer-Encoding:浏览器通过这个头告诉服务器,数据是分块方式发送的
  • Expires:-1 控制浏览器不要缓存
  • Cache-Control:no-cache
  • Pragma:no-cache
爬虫(Web Crawler)是一种自动化程序,用于从互联上收集信息。其主要功能是访问页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对站造成过大负担或触发反爬虫机制,爬虫需要遵守站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重站的使用政策,并确保对被访问站的服务器负责。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值