Python爬虫—爬虫基础简介

本文详细介绍了Python爬虫的原理、应用,包括request模块使用、数据解析、反爬机制、http/https基础知识,以及实战案例——4K图片爬取和处理验证码。涵盖通用爬虫、聚焦爬虫和反反爬策略,适合初学者和进阶者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关文章链接:

 Python爬虫—request模块与验证码识别​​​​​​​​​​​​​​

Python爬虫—数据解析及案例(4K图片爬取)​​​​​​​

什么是爬虫

 网络爬虫也叫网络蜘蛛,它指一类自动批量下载网络资源的程序。通过编写程序,模拟浏览器上网,然后让其去互联网抓取数据的过程。

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物。而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据。

二、爬虫的应用

1、数据采集:

         抓取微博评论(机器学习舆情监控)、抓取聘信息(数据分析、挖掘)等

2、搜索引擎:

        百度、谷歌

3、模拟操作:

        模拟用户操作

4、软件测试:

        爬虫自动化测试、爬虫师

5、网络安全:

        短信轰炸、web漏洞扫描

三、爬虫在使用场景中的分类

1、通用爬虫

        抓取系统的重要组成部分。抓取的是一整张页面数据。(缺点:大部分内容没用——不同搜索目的,返回内容也相同)

2、聚焦爬虫

        是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容

3、增量式爬虫

        检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据

四、反爬机制(robots.txt协议)

        门户网站,可以通过制定相应策略或者技术手段,防止爬虫数据进行网站数据的爬取。、

robots.txt协议:

        君子协议。规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。查看方式:域名+/robots.txt,如:https://www.taobao.com/robots.txt 

五、反反爬策略

        爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中的相关数据。

六、爬开发流程

1、单一页面数据的爬取:    (补充url:浏览器搜索框中的内容)

        url ——>发送请求获取响应——>提取数据——>保存数据

2、多页面数据的爬取:

        发送请求,获取响应——>提取url地址继续请求

七、爬虫开发的重难点

1、数据的获取

        许多网络公共资源为避免爬虫采集,服务端会设置较多反爬措施,因此在开发爬虫的工程中很大的工作内容就是处理这些反爬机制。

2、采集的速度

        如果采集速度慢,耗时过长,可能无法满足商业要求,一般采用并发以及分布式来解决速度上的问题。

八、http/https预备知识

大多数商业应用采用的架构:

  1. c/s 即client(客户端) server(服务端)
  2. b/s 即brower(浏览器)server(服务端)
  3. m/s即mobile(移动端)server(服务端)

以上统称客户端与服务端

http是一个应用层协议

九、http

1、概念:就是服务器和客户端进行数据交互的一种形式

        http是Hyper Text Transfer Protocol超文本传输协议的缩写是用于从万维网服务器传输超文本到本地浏览器的传送协议

        HTTP是基于TCP/IP通信协议来传递数据的HTML文件图片文件查询结果等),三次握手四次挥手

2、HTTP请求流程:

        浏览器搜索东西,输入的是URL浏览器会将其自动转换为HTTP协议

        一次http请求的基本流程是,由用户端向服务端发起一次请求(request),而服务器在接受到以后返回给客户端一个响应(response)。所以一次完整的http请求包含请求和响应两部分

浏览器发送http请求的过程

                                     域名解析 --> 

                                    发起TCP的3次握手 --> 

                                   建立TCP连接后发起http请求 --> 

                                   服务器响应http请求,浏览器得到html代码 --> 

                                   浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 

浏览器对页面进行渲染呈现给用户.

3、URL(浏览器搜索框里的内容!)

        URL(Uniform Resource Locator)统一资源定位符,是用于标识某一处资源的地址。也就是我们常说的网址。

4、URL组成:

        协议+域名(端口默认80)+路径+参数

  1. 常用请求头信息(Request Headers):
    1. User-Agent:请求载体的身份标识

内容包含发出请求的用户信息通常UA包含浏览者的信息主要是浏览器的名称版本和所用的操作系统

                2、Connection:请求完毕后,是断开连接还是保持连接

客户端与服务器链接类型,keep-alive保持连接,close关闭连接

      常用响应头信息:Content-Type:服务器响应回客户端的数据类型

5、HTTP特点:

                        HTTP是无连接的

                        HTTP是媒体独立的

                        HTTP是无状态的

十、https

HTTPSHyper Text Transfer Protocol over Secure Layer超文本传输安全协议),是以安全为目标的HTTP通道简单讲是HTTP的安全版

在http的基础上再加了一层SSL/TLS协议,数据在传输过程中是加密的。

  1. 加密方式
    1. 对称秘钥加密
    2. 非对称秘钥加密
    3. 证书秘钥加密https协议采用方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白天数糖晚上数羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值