爬虫理论


目录

爬虫的概念

  • 爬虫又称网页蜘蛛或者网页机器人
  • 模拟人操作客户端,向服务器发起网络请求,抓取数据的自动化程序和脚本
  • 爬虫分为聚焦爬虫和通用爬虫
  • 自动化,数据量较小时可以人工获取数据,但往往在公司中爬取的量都在百万级千万级,所以要程序自动化获取数据

B/S C/S 架构

  • B/S架构:Browser/Server,类似淘宝,没有第三方中转,客户端和服务器直接交互
  • C/S:Client/server,类似微信,将微信后端作为中转站,和其他人对话时,需要在中转站传话

通用爬虫

  • 百度,360,搜狐等搜索引擎
    1. 抓取网页
    2. 采集数据
    3. 数据处理
    4. 提供检索服务
  • 通用爬虫抓取新网站的方式
    1. 主动提交url
    2. 设置友情连接
    3. 百度会和DNS服务商合作,抓取新网站
  • 检索排名
    1. 竞价排名
    2. 根据PageRank值,访问量、点击量(SEO)
  • 缺点:
    1. 抓取的内容多数无用。
    2. 无法精确获取数据。
  • robots协议
  1. Robots协议的全称是“网络爬虫排除标准”,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但是robots协议并不是一个规范,而只是约定俗成的,所以可以不遵守。
  2. 在网址后加上/robots.txt就能查看 https://www.baidu.com/robots.txt

聚焦爬虫

  • 根据需求来抓取指定的数据。
  • 设计思路
    1. 确定 url,发起请求,获取响应
    2. 解析内容,抓取数据
    3. 将数据存储到本地,数据持久化
  • 增量式爬虫
    • 通过爬虫程序监测某网站数据更新的情况,以便可以爬取到该网站更新出的新数据。
  • 深度爬虫
    • 针对其实url地址进行数据采集,在响应数据中进行数据筛选得到需要进行数据采集的下一波url地址,并将url地址添加到队列中进行二次爬取…以此类推,一致到所有页面的数据全部采集完成即可完成深度数据采集,这里的深度指代的就是url地址的检索深度。

OSI七层模型

7.应用层:

https/http/ftp  http协议:明文传输,端口80  https协议:加密传输,端口443

6.表示层

5.会话层

4.传输层:UDP/TCP

3.网络层:IP

2.数据链路层:ARP

1.物理层:以太网协议

**

TCP/IP五层模型

应用层:https/http/ftp/ssh/Sftp/

传输层:UDP/TCP

网络层:IP

数据链路层:ARP

物理层:以太网协议

HTTP与HTTPS协议

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。


HTTP 与 HTTPS  的区别
1、HTTPS  协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。

3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

TCP和UDP

TCP协议是一种面向连接的,可靠的,基于字节流的传输通信协议

1. 有序性:数据包边好,判断数据包的正确次序
2. 正确性:使用checksum函数检查数据包是否损坏,发送和接收时都会计算校验和
3. 可靠性:发送端由超时重发,并有确认机制识别错误和数据的丢失
4. 可控性:滑动窗口协议与拥塞控制算法控制数据包的发送速度

UDP协议是用户数据报协议,面向无连接的传输层协议,传输相对于TCP来说,不可靠

1. 无连接:数据可能丢失或损坏
2. 报文小,传输速度快
3. 吞吐量大的网络传输,可以在一定成都上承受数据丢失

ARP协议

通过IP获取目标计算机的mac地址的协议

	> 交换机不能识别IP地址

服务器创建的默认端口

ftp:21
ssh:22
mySQL:3306
MongoDB:27017
Redis:6379
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫中,常用的数据存储方式有以下几种: 1. 存储为JSON格式:你可以使用`json`模块将数据存储为JSON格式。首先,你需要定义一个`store`函数,该函数接收要存储的数据作为参数,然后使用`json.dumps`将数据转换为JSON字符串,并通过`open`函数以写入模式打开一个文件,最后将JSON字符串写入文件中。类似地,你可以定义一个`load`函数来读取JSON数据。使用`json.load`从文件中加载JSON数据并返回。 2. 存储为CSV格式:你可以使用`pandas`库将数据存储为CSV格式。使用`pandas.read_csv`函数读取一个CSV文件,并将其存储在一个`DataFrame`对象中。然后,你可以通过使用`to_csv`方法将数据写入CSV文件。 3. 存储为Excel格式:你可以使用`xlrd`和`xlutils`库将数据存储为Excel格式。首先,你需要通过`xlrd.open_workbook`函数打开一个Excel文件,然后使用`xlutils.copy.copy`函数创建一个副本。接下来,你可以使用`get_sheet`方法获取指定索引的工作表,并使用`write`方法将数据写入工作表中。最后,使用`save`方法保存修改后的Excel文件。 请注意,在使用任何存储方式之前,你需要通过安装相应的库来引入必要的模块。例如,使用`pip install json`来安装`json`模块,使用`pip install pandas`来安装`pandas`库。 综上所述,以上是Python爬虫中常用的数据存储方式。你可以根据自己的需求选择合适的方式来存储数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python爬虫理论 | (4) 数据存储](https://blog.csdn.net/sdu_hao/article/details/94561746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python爬虫系列: 数据存储(一)](https://blog.csdn.net/TOPEE362/article/details/126254928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值