返回顶部
首页 > 资讯 > 后端开发 > Python >Python |浅谈爬虫的由来
  • 933
分享到

Python |浅谈爬虫的由来

python爬虫开发语言由来历史原理机制 2023-09-01 11:09:38 933人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本文概要 本篇文章主要介绍python爬虫的由来以及过程,适合刚入门爬虫的同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! 🌟🌟🌟

本文概要

本篇文章主要介绍python爬虫由来以及过程,适合刚入门爬虫的同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧!

🌟🌟🌟个人简介🌟🌟🌟

☀️大家好!我是新人小白博主朦胧的雨梦,希望大家多多关照和支持😝😝😝
🌖大家一起努力,共同成长,相信我们都会遇到更好的自己👊👊👊
🌗期待我的文章能给各位带来收获和解决问题的灵感🤩🤩🤩
🌟大家的三连是我不断更新的动力~😘😘😘

在这里插入图片描述

目录


在这里插入图片描述

学习重点提前知🏆

  1.了解何为爬虫

  2.掌握网络传输协议(主要为Http协议和https协议);

  3.掌握爬虫机理。

✨一.爬虫的由来和编写语言

🌲1.何为爬虫

  爬虫指的是一种自动化程序或软件,可以对互联网上的网页进行自动化抓取和分析。其基本原理是先根据设定的规则和指令搜索和下载特定的网页,然后解析其内容,提取所需的数据信息,并进一步处理和应用这些数据。

  在互联网中,数据是极其重要和珍贵的资产,因此爬虫应用广泛,例如搜索引擎,数据挖掘,业务智能和个性化推荐,自然语言处理,监测竞争对手等方面。爬虫除了可以有效地提供海量的各种类型的数据,也可以帮助机构或公司了解自己的品牌形象和在竞争市场中的地位。

  但是,由于爬虫不仅可以用于良性目的,还能用于非法、恶意目的,例如爬取个人敏感信息或侵犯版权等违法行为,因此,爬虫在实际运用中也需要遵守法律和伦理规范,否则将会面临法律制裁和声誉损失等风险。

  我个人说说大白话,首先爬虫的初衷就是根据某些规则,对特定网页的信息进行提取和采集。其次,爬虫有利有害,具体是利还是害,则须看使用这项技术的人,“技术本身不分好坏”,非要拿出来个标准,那就是“君子约定”,举例,我们打开baidu文库网在网站根目录后输入/robots.txt后即可查看该网站的君子协议。
在这里插入图片描述
Of course, if you follow this agreement, you don’t need to learn this technology,Ctrl+c and Ctrl+v are sufficient.,咳咳,大家只要记住,第一,你不要去以一个极高的频率向对方的服务器发送请求,不听话?如果造成宕机,恭喜你…第二,强行突破对方的各种加密手段从而拿到一些涉及机密的数据,第三,涉及个人隐私信息等
在这里插入图片描述

🌲2.python语言对爬虫的重要性

  Python语言在爬虫领域中的作用非常重要,因为Python是一种易学易用的编程语言,有一个强大的爬虫生态系统和大量开源的爬虫框架可供选择。其他一些常见的编程语言,例如Java、PHPC/C++等也可以用于编写爬虫,但对比Python来说,Python语言在以下几个方面表现得更胜一筹:
  1.简单易学:Python语言简单易学,使得开发者可以快速掌握其语法和基础知识,进而能够高效地编写出复杂的爬虫程序。

丰富的库和框架:Python拥有大量的库和框架,这些库和框架可以极大地降低爬虫开发的难度,避免开发者重复造轮子

  2.容易维护:Python的语法简洁明了,代码可读性强,适合开发和维护大型爬虫系统。

  3.跨平台:Python是一种跨平台的编程语言,在不同的操作系统和平台上都能够运行,这使得开发者可以更加快速地验证爬虫程序的正确性。

  因此,在爬取和处理互联网数据的过程中,Python语言以其简洁优美的语法、功能强大的爬虫框架和庞大的生态系统,一直受到开发者的青睐。

✨二.网络传输协议

🌲1.HTTP协议

  HTTP,全称是“超文本传输协议”,是一种用于传输文本、图像、音频、视频等超媒体信息的应用层协议

  HTTP 协议设计的初衷是为了在 WEB 环境下进行通信,HTTP协议基于tcp连接,使用客户端-服务端模型,客户端发出HTTP请求,服务端返回HTTP响应。HTTP协议的常见版本有 HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3等。

  HTTP协议的请求报文包含请求行,请求头和请求体三部分,请求行包含方法、URL和HTTP协议版本,请求头包含请求的附加信息,例如 Accept 和 User-Agent等,请求体包含上传的数据,例如表单数据或文件。

  HTTP协议的响应报文包含状态行,响应头和响应体三部分,状态行包含HTTP协议版本、状态码和状态描述,响应头包含响应的附加信息,例如 Content-Type 和 Server等,响应体包含响应的数据,例如html页面、图片或JSON数据。

  HTTP协议简单易懂,易于使用,广泛应用在互联网上,例如浏览器的网页请求和响应、api的数据传输等。但HTTP协议基于明文传输,容易受到网络攻击和窃听,因此在实际应用中,HTTPS协议逐渐取代了HTTP协议成为更为安全的协议标准。

  如果是纯小白,大家只需要明白,HTTP协议传输过程不加密,客户端-服务端模型,如下所示:
在这里插入图片描述

🌲2.HTTPS协议

  HTTPS,全称是“超文本传输安全协议”,是基于HTTP协议的一种安全的传输协议。HTTPS协议采用了SSL/TLS协议来加密传输数据,保证数据传输的安全性和完整性,防止被窃听和篡改。

  HTTPS协议在HTTP协议的基础上添加了加密方式和认证过程。HTTPS协议使用公钥、私钥和数字证书来实现加密和认证,加密采用了对称加密和非对称加密两种方式,对称加密用于加密数据,非对称加密用于认证服务端身份和交换对称加密所需的密钥。

  HTTPS协议的优点在于它可以保护用户的隐私信息,例如登录密码、信用卡号等,防止资料被黑客或中间人攻击者窃取或篡改。HTTPS协议现在已被广泛应用于金融、电商、社交媒体等互联网应用环境中。

  虽然HTTPS协议相对于HTTP协议而言,会带来一定的性能开销,例如建立连接的握手过程和加密处理的开销等,但由于网络安全问题日益严重,HTTPS协议已成为互联网通信标准的重要部分,同时各种新型的网络攻击和漏洞常常让出于安全考虑,网站运营者们更倾向Dioc升级其网站为HTTPS协议。

🌲3.返回的状态码意义

  当客户端向服务器发起网络请求时,服务器会返回一个状态码,状态码分为5类,分别是1xx、2xx、3xx、4xx和5xx。不同状态码代表着不同的含义,具体如下:

  1.1xx:表示客户端的请求已经被接收了,但服务器需要进一步处理请求才能完成。如:100 (继续),表示客户端可以继续发送请求。

  2.2xx:表示请求已成功被服务器接收、理解,并处理。如:200 (OK),表示请求已成功。

  3.3xx:表示请求需要进一步操作,服务器会返回一些跳转信息,告诉客户端如何操作。如:302 (重定向),表示请求的地址已经改变,需要客户端重新发送请求到新的地址。

  4.4xx:表示请求有误,客户端发送的请求出现了问题,如:404 (未找到),表示客户端请求的资源不存在。

  5.5xx:表示服务器端发生了错误,无法完成客户端的请求,如:500 (服务器内部错误),表示服务器发生了未知错误。

  状态码是网络请求过程中非常重要的一部分,它可以让客户端和服务器能够快速识别问题所在,进而进行修复和解决。因此,在进行网络开发的过程中,我们需要理解各种状态码的含义,以便及时排查和修正问题。

✨三.学会使用抓包工具

  抓包工具有很多,这里我建议小白使用Chrome浏览器,因为真的很好用,主要有以下几个原因:

  Chrome浏览器是市场占有率最高的浏览器,因此模拟Chrome浏览器的行为能够使爬虫更加隐蔽、更接近真实的用户行为,避免被网站识别为爬虫而被封禁。

  Chrome浏览器内置了开发者工具,使用Chrome提供的开发者工具可以方便的查看网页源码、调试javascript代码、分析HTTP请求等,这些功能对于爬虫开发来说非常有用。

  Chrome浏览器支持多种插件和扩展,其中一些插件可以帮助爬虫开发者更加方便的抓取和分析网页数据,例如Chrome插件XPath Helper可以方便地在网页中获取XPath路径

  Chrome浏览器的自动化测试工具selenium也可以用于爬虫开发,Selenium可以模拟用户使用Chrome浏览器的行为,例如自动点击、输入、滚动等,这对于爬取一些需要模拟人工操作的网站非常有用。

  使用Chrome浏览器可以使爬虫更易于编写、更接近真实的用户行为、更方便地获取和分析网页数据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨四. 爬虫的机制

  1.确定爬取目标:首先需要明确要爬取的网站、要爬取的数据类型和要爬取的数据范围。

  2.发起请求:爬虫程序通过 HTTP 或 HTTPS 协议向目标网站发起请求,获取网页的 HTML 文档。

  3.解析 HTML:爬虫程序使用网页解析库(如 BeautifulSoup、lxml)解析网页的 HTML 文档,提取出需要的数据。
  4.处理数据:爬虫程序对获取到的数据进行处理和存储,例如将数据存储到数据库中或写入文件。

  5.反爬措施:由于许多网站采取了反爬虫措施,爬虫程序需要进行相应的解决策略,例如设置 User-Agent 参数、使用代理和验证码识别等。

  6.定时任务:如果是长期维护的爬虫,需要定期对目标网站进行监测和更新,确保数据的实时性和准确性。.
   🌲示例:

import requests# 发起请求,获取网页 HTMLurl = 'https://www.xxxx.com/'response = requests.get(url)print(response.text)html = response.text# 解析 HTML,提取数据from bs4 import BeautifulSoupsoup = BeautifulSoup(html, 'html.parser')title = soup.title.string# 处理数据,存储数据with open('xxxx.html', 'w', encoding='utf-8') as f:    f.write(html)print('爬取完成')

✨六.总结

  通过今天的简单介绍,相信大家已经明白了Python爬虫的由来以及过程,好了,今天就分享到这里,谢谢大家的观看,有什么想法记得评论区告诉我!拜拜~✨ ✨ ✨

💫往期好文推荐

  TOP🥇.自动驾驶技术未来大有可为❤️❤️❤️🏆🏆🏆❤️❤️❤️

  TOP🥈.Python爬虫 | 利用python爬虫获取想要搜索的数据(某du)❤️❤️❤️🏆🏆🏆❤️❤️❤️

  TOP🥉.ChatGPT | 一文详解ChatGPT(学习必备)❤️❤️❤️🏆🏆🏆❤️❤️❤️

在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_72906726/article/details/130538408

--结束END--

本文标题: Python |浅谈爬虫的由来

本文链接: https://lsjlt.com/news/388361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python |浅谈爬虫的由来
    本文概要 本篇文章主要介绍Python爬虫的由来以及过程,适合刚入门爬虫的同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! 🌟🌟🌟...
    99+
    2023-09-01
    python 爬虫 开发语言 由来历史 原理机制
  • 浅谈 Python 网络爬虫的那些事(文末送书7.0)
    文章目录 📋前言🎯什么是网络爬虫🧩 网络爬虫概述 🎯爬虫案例🧩代码案例 🔥文末送书&#x...
    99+
    2023-09-20
    python 爬虫 开发语言 网络爬虫 Beautiful Soup 网络请求 原力计划
  • Python爬取门户论坛评论浅谈Python未来发展方向
    目录Robots.txt 协议Python代码Python发展方向数据分析/数据挖掘人工智能Python运维WEB开发Python爬虫 环境: Python3 + wind...
    99+
    2024-04-02
  • 万能的Python爬虫模板来了
    Python是一种非常适合用于编写网络爬虫的编程语言。以下是一些Python爬虫的基本步骤: 导入所需的库:通常需要使用requests、BeautifulSoup、re等库来进行网络请求、解析HTM...
    99+
    2023-09-17
    python 爬虫 开发语言 运维
  • Python爬虫架构由什么组成
    本篇内容介绍了“Python爬虫架构由什么组成”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  什么是Python爬虫呢  爬虫又叫做网络爬...
    99+
    2023-06-02
  • 浅谈Python爬取网页的编码处理
    背景 中秋的时候,一个朋友给我发了一封邮件,说他在爬链家的时候,发现网页返回的代码都是乱码,让我帮他参谋参谋(中秋加班,真是敬业= =!),其实这个问题我很早就遇到过,之前在爬小说的时候稍微看了一下,不过没...
    99+
    2022-06-04
    浅谈 网页 Python
  • 浅谈Python由__dict__和dir()引发的一些思考
    关于__dict__和dir()的区别和作用请参考这篇文章: 基于Python __dict__与dir()的区别详解 说下我当时遇到的问题: class Demo: def __init__(se...
    99+
    2022-06-04
    浅谈 Python dir
  • Python爬虫-01:爬虫的概念及分类
    目录 # 1. 为什么要爬虫 2. 什么是爬虫? 3. 爬虫如何抓取网页数据? # 4. Python爬虫的优势? ...
    99+
    2023-01-30
    爬虫 概念 Python
  • 浅谈关于Android路由的实现
    先说一下背景,目前有需求从外部包括其他应用和WEB跳转到我们自己的APP,就这么个简单的需求……要实现这种外部跳转的功能,我们可以理解为打算跳转的一方有多少方式通知到APP进行相对的响应行为。所以,如果是应用之间的跳转,则有多种,你可以直接...
    99+
    2023-05-30
    android 路由 roi
  • golang爬虫和Python爬虫的区别是什么
    golang爬虫和Python爬虫的区别是:1、Golang具有较高的性能,而Python通常比较慢;2、Golang的语法设计简洁、清晰,而Python的语法简洁、易读易写;3、Golang天生支持并发,而Python的并发性能相对较差;...
    99+
    2023-12-12
    golang爬虫 Python爬虫
  • python爬虫竟然被小伙用来算命
    目录前言1.网站分析2.获取内容3.代码4.实操5.代码整合前言 相信在日常生活中,平常大家聚在一起总会聊聊天,特别是女生(有冒犯到doge)非常喜欢聊星座,这个男生什么星座呀,那个...
    99+
    2024-04-02
  • Python爬虫:导出爬取的数据
    最近想要做一个爬虫,检验一下Python的学习成果,眼看快要做完了,又遇到了问题,想要导出爬取的数据就必须要了解CSV文件,可是!下面是我百度出的结果! 啊啊啊啊! 作为一枚小白,我看不懂百科在说些什么?!后来,在网上发现一个讲爬...
    99+
    2023-01-31
    爬虫 数据 Python
  • 【Python3爬虫】用Python中的
    当你看着你的博客的阅读量慢慢增加的时候,内心不禁有了些小激动,但是不得不吐槽一下--博客园并不会显示你的博客的总阅读量是多少。而这一篇博客就将教你怎么利用队列这种结构来编写爬虫,最终获取你的博客的总阅读量。   队列是常用数据结构之一...
    99+
    2023-01-30
    爬虫 Python
  • python下的爬虫简介
    今天看了一本书的介绍《python网络爬虫实战》,里面介绍了四种框架(or模块),我做了小结如下:scrapy     基本常用的框架,只要根据固定模版,编写即可,自己主要编写解析的选择器,和解析出来的数据处理。特别适合静态页面的,比如新闻...
    99+
    2023-01-31
    爬虫 简介 python
  • 浅谈react路由传参的几种方式
    第一种传参方式,动态路由传参 通过设置link的path属性,进行路由的传参,当点击link标签的时候,会在上方的url地址中显示传递的整个url <Link to='/...
    99+
    2024-04-02
  • Python爬虫基础之爬虫的分类知识总结
    目录一、通用爬虫二、搜索引擎的局限性三、Robots协议四、请求与相应一、通用爬虫 通用网络爬虫是搜索引擎抓取系统(Baidu、Google、Sogou等)的一个重要组成部分。主要目...
    99+
    2024-04-02
  • python爬虫中分布式爬虫的作用是什么
    这篇文章给大家分享的是有关python爬虫中分布式爬虫的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。随着大数据时代的来临,大数据也吸引了越来越多的关注。网络爬虫是一种高效的信息抓取工具,它集成了搜索引...
    99+
    2023-06-15
  • Python爬虫所需要的爬虫代理ip是什么
    本篇内容主要讲解“Python爬虫所需要的爬虫代理ip是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫所需要的爬虫代理ip是什么”吧!1 代理类型代理IP一共可以分成4种类型...
    99+
    2023-06-02
  • 浅谈python中的多态
    目录一、多态二、多态性三、鸭子类型一、多态 多态是指一类事物有多种形态,比如动物类,可以有猫,狗,猪等等。(一个抽象类有多个子类,因而多态的概念依赖于继承) import abc class Animal(met...
    99+
    2022-06-02
    python 多态
  • 浅谈Python的元编程
    目录一、装饰器二、装饰器的执行顺序三、元类四、descriptor 类(描述符类)五、总结 相应的元编程就是描述代码本身的代码,元编程就是关于创建操作源代码(比如修改、生成或包装原来...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作