Python爬虫----python爬虫根本

[复制链接]
发表于 2025-12-24 07:13:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、python爬虫根本-爬虫简介
1、现实生存中现实爬虫有哪些?
2、什么是网络爬虫?
3、什么是通用爬虫和聚焦爬虫?
4、为什么要用python写爬虫步调
5、环境和工具
二、python爬虫根本-http协媾和chrome抓包工具
1、什么是http和https协议
2、http哀求过程
3、url详解
4、常用的哀求方法:
5、哀求头常见参数:
6、常见相应状态码:
7、欣赏器抓包工具


一、python爬虫根本-爬虫简介

1、现实生存中现实爬虫有哪些?

(1)搜刮引擎(百度、谷歌、360)
(2)购物助手:可以主动检察汗青代价,通过爬虫实现爬取电商平台代价数据。
(3)数据分析与研究:根据爬虫步调爬取数据并对数据举行分析。
(4)抢票软件:
2、什么是网络爬虫?

爬虫是一个模拟人类哀求网站举动的步调、可以主动哀求网页,并将数据抓取出来,然后使用肯定的规则把有用的数据筛选出来。
3、什么是通用爬虫和聚焦爬虫?

通用爬虫‌(General Purpose Web Crawler 或 Scalable Web Crawler)的目的是覆盖整个互联网或尽大概广泛的网络空间举行数据抓取。它们紧张用于搜刮引擎,如Baidu、Google和Yahoo,目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。通用爬虫的爬行范围和数量巨大,通常采取并行工作方式,但必要较长时间才气革新一次页面‌。
‌聚焦爬虫‌(Focused Crawler 或 Topical Crawler)则是选择性地爬行那些与预先界说好的主题相干的页面。与通用爬虫相比,聚焦爬虫只必要爬行与主题相干的页面,从而极大地节流了硬件和网络资源,生存的页面数量少且更新快,可以大概很好地满足特定人群对特定范畴信息的需求‌。
4、为什么要用python写爬虫步调

(1)PHPHP是天下是最好的语言,但他天生不是做这个的,而且对多线程、异步支持不是很好,并发处理处罚本领。爬虫是工具性步调,对速率和服从要求比力高。
(2)Java:生态圈很美满,是Python爬虫最大的竞争对手。但是Java语言自己很粗笨,代码量很大。重构资源比力高,任何修改会导致代码大量改动。爬虫要常常修改收罗代码。
(3)C/C++:运行服从是无敌的。但是学习和开发资源高。写个小爬虫步调大概要泰半天时间。 (4)Python:语法精美、代码轻便、开发服从高、支持的模块多。相干的HTTP请家模块和HTML分析模块非常丰富。另有Scrapy和Scrapy-redls框架让我们开发肥虫变得非常简单。
5、环境和工具

(1)开发环境:python3以上
(2)使用工具:Pycharm
(3)假造环境: Virtualenv/Virtualenvwrapper
二、python爬虫根本-http协媾和chrome抓包工具

1、什么是http和https协议

HTTP协议:全程是HyperText Transfer Protocol,即超文本传输协议,是一种发布和吸取HTML的方法。服务端标语80。
HTTPS协议:是http协议的加密版本,在HTTP下参加了ssl层,服务端标语是443端口。
2、http哀求过程

(1)当用户在欣赏器的所在栏中输入一个URL并按回车键之后,欣赏器会向HTTP服务器发送HTTP哀求。HTTP哀求紧张分为"Get"和"ost"两种方法。
(2)当我们在欣赏器输入URL http://www.baidu.com 的时间,欣赏器发送一个Request哀求去获取 http://www.baidu.com的html文件,服务器把Response文件对象发送回给欣赏器。
(3)欣赏器分析Response中的 HTML,发现此中引用了许多其他文件,好比images文件,CSS文件,JS文件。欣赏器会主动再次发送Request哀求去获取图片,CSS文件,大概JS文件。

(4)当全部的文件都下载乐成后,网页会根据HTML语法布局,完备的表现出来了。
3、url详解

URL是UniforF Resource Locator 的简写,同一资源定位符。
一个 URL 由以下几部分构成:
  1. scheme://host:port/path/?query-string=xxx#anchor
复制代码


  • scheme:代表的是访问的协议,一样平常为http大概 https以及 ftp 等。
  • host:主机名,域名,好比www.baidu.com。
  • port:端标语。当你访问一个网站的时间,欣赏器默认使用80端口。
  • path:查找路径。好比:www.baidu.com/trending/now,背面的trending/now 就是 path 。
  • query-string:查询字符串,好比:www.baidu,con/s?wd-python,背面的 wd-python 就是查询字符串。如果查询多个参数使用&举行拼接。
  • anchor:锚点,背景一样平常不消管,前端用来做页面定位的。
在欣赏器中哀求一个 url,欣赏器会对这个url举行一个编码。除英笔墨母,数字和部分符号外,其他的全部使用百分号+十六进制码值举行编码。
4、常用的哀求方法:

在 Http 协议中,界说了八种哀求方法。这里先容两种常用的哀求方法,分别是get 哀求和 post 哀求。
(1)set哀求:一样平常环境下,只从服务器获取数据下来,并不会对服务器资源产生任何影响的时间会使用 set 哀求。
(2)post 哀求:向服务器发送数据(登录)、上传文件等,会对服务器资源产生影响的时间会使用 post 哀求。
以上是在网站开发中常用的两种方法。而且一样平常环境下都会遵照使用的原则。但是有的网站和服务器为了做反爬虫机制,也常常会不按常理出牌,有大概一个应该使用get方法的哀求就肯定要改成post哀求,这个要视环境而定。

5、哀求头常见参数:

在 http 协议中,向服务器发送一个哀求,数据分为三部分,第一个是把数据放在url中,第二个是把数据放在 body 中(在 post 哀求中),第三个就是把数据放在 head中。这里先容在网络虫中常常会用到的一些哀求头参数:
(1)Uer-Agent:欣赏器的名称。这个在网络爬虫中常常会被使用到。哀求一个网页的时间,服务器通过这个参数就可以知道这个哀求是由哪种欣赏器发送的。如果我们是通过爬虫发送哀求,那么我们的user-Agent就是python ,这对于那些有反爬虫机制的网站来说,可以容易的判断你这个哀求是爬虫。因此我们要常常设置这个值为一些欣赏器的值,来伪装我们的爬虫。
(2)Referer :表明当前这个哀求是从哪个url过来的。这个一样平常也可以用来做反爬虫技能。如果不是从指定页面过来的,那么就不败相干的相应。 (3)cookie: http 协议是无状态的。也就是同一个人发送了两次哀求,服务器没有本领知道这两个哀求是否来自同一个人。因此这时仅就用 cookie来做标识。一样平常如果想要做登录后才气访问的网站,那么就需发送 cookie 信息。

6、常见相应状态码:



  • 200:哀求正常,服务器正常的返回数据。
  • 301: 永世重定向。好比在访问www.jingdong.com的时间会重定问到www.jd.com。
  • 302:暂时重定向。好比在访问一个必要登录的页面的时间,而此时没有登录,那么就会重定向到登录页面。
  • 400:哀求的url在服务器上找不到。换句话说就是哀求 url错误。
  • 403: 服务器拒绝访问,权根不敷。
  • 500: 服务器内部错误。大概是服务器出现 bug 了。
7、欣赏器抓包工具

欣赏器内右键->查抄或F12:
(1)Elements 面板
作用:检察和修改 HTML 和 CSS 代码
这个面板展示了当前页面的 HTML 布局 和 CSS 样式。你可以直接检察页面的 DOM(Document Object Model,文档对象模子),也就是页面的 HTML 元素的条理布局,以及与每个元素关联的 CSS 样式。


  • 及时检察页面布局:通过 Elements 面板,你可以看到欣赏器是怎样分析和展示 HTML 元素的。每个元素都可以睁开以检察其子元素。
  • 修改页面样式:你可以在这个面板中暂时修改 HTML 或 CSS 来检察结果厘革。好比,右键单击某个元素,选择 “查抄”(Inspect),可以检察并及时编辑该元素的样式。这些修改只会在本地收效,不会影响服务器上的页面。
  • 调试布局题目:如果页面布局有题目,好比元素表现错位,或是某个元素不可见,你可以使用 Elements 面板查抄该元素的样式、布局盒模子(Box Model),看看是否有 CSS 样式题目。
使用示例:


  • 按下 F12,打开 Elements 面板。
  • 移动鼠标到页面上的元素,欣赏器会高亮表现该元素的 HTML 代码和样式。
  • 你可以暂时修改 HTML 或 CSS,看看页面会怎样厘革。
(2)Console 面板
作用:检察日记信息、调试 JavaScript
Console 面板是用于实行和调试 JavaScript 代码 的地域。它有两个紧张功能:


  • 输出日记:开发者可以通过 JavaScript 中的 console.log() 方法将调试信息输出到控制台。这对于检察步调运行过程中的变量状态、错误信息等非常有用。
  • 实行 JavaScript 代码:你可以直接在控制台中输入和实行 JavaScript 代码。好比,输入 document.querySelector('h1'),可以获取页面上的第一个 <h1> 元素。
别的,当 JavaScript 代码抛堕落误时,错误信息也会表现在 Console 面板中,资助你定位题目。
使用示例:


  • 按下 F12,打开 Console 面板。
  • 输入 alert('Hello!') 并按下回车,欣赏器会弹出一个提示框表现 “Hello!”。
(3)Network 面板
作用:监控监控网络哀求,分析页面加载性能
Network 面板表现了页面加载时发起的全部网络哀求,包罗:


  • HTML、CSS、JavaScript 文件的哀求。
  • 图片、视频、音频等媒体资源的加载。
  • AJAX 哀求,即前端与服务器之间的动态数据互换。
你可以使用这个面板来分析页面加载的速率,检察哪些资源占用了较多时间,并可以查抄每个哀求的相应内容、状态码等。开发者通常用这个面板来调试 API 调用,确保哀求的数据精确返回,以及分析页面性能瓶颈。
Network面板的概述:时间轴
当你打开 Network 面板时,你会看到一个时间轴,它表现了页面加载过程中发出的全部哀求,按序次分列,通常包罗:


  • HTML 页面:页面的主 HTML 文件。
  • CSS 文件:用于页面样式的 CSS 文件。
  • JavaScript 文件:前端逻辑的 JavaScript 文件。
  • 图片、字体、媒体资源:如图片、字体、视频等。
  • Ajax 哀求或 Fetch 哀求:与服务器举行的异步数据互换。
  • 其他资源:如 WebSocket 毗连、manifest 文件等。
(4)Sources 面板
作用:调试 JavaScript 代码
Sources 面板答应开发者检察和调试 JavaScript 代码。你可以在这个面板中设置断点(breakpoints),今世码实行到某个断点时,欣赏器会停息运行,如许你可以徐徐检察变量的值、调用的函数堆栈等。
常见功能:


  • 断点调试:设置断点后,当欣赏器实行到这一行代码时会停息,你可以一步步调试代码。
  • 监控监控变量:在调试时可以及时检察变量的值,资助你分析 JavaScript 的实行过程。
  • 检察本地和会话存储:可以通过 Application 面板检察本地存储(LocalStorage)或会话存储(SessionStorage)中的数据。
(5)Application 面板
作用:检察和管理存储、缓存及会话数据
Application 面板答应你检察页面存储的数据和资源,包罗:


  • Cookies:你可以检察每个域名下的 Cookie,而且可以修改或删除它们。
  • LocalStorage 和 SessionStorage:检察页面存储在欣赏器本地的数据,这通常用于保持用户状态等。
  • IndexedDB 和 Web SQL:这些是欣赏器内的数据库存储,可以存储较大数据。
  • Service Workers:你可以管理页面的服务工作线程(Service Workers),这对于 PWA(渐进式网页应用)和离线功能非常紧张。
(6)Performance 面板
作用:分析页面加载性能,举行性能优化
Performance 面板答应你纪录页面加载过程中的性能数据,资助你分析哪些部分斲丧了过多的资源。这对于优化页面的加载速率非常紧张,开发者可以通太过析页面的渲染、资源加载、JavaScript 实行等来发现瓶颈。
常见功能:


  • 纪录页面性能:通过点击 “Record” 按钮,你可以纪录页面加载的具体信息,分析每个部分的加载时间。
  • 帧率分析:如果你的页面包罗动画或交互,可以检察帧率来确保页面的流通度。
(7)Security 面板
作用:查抄页面的安全性
Security 面板资助开发者检察页面的安全信息,好比 HTTPS 证书是否有用,是否存在混淆内容(即 HTTPS 页面中包罗了不安全的 HTTP 资源)。如果你的网站有安全题目,这个面板会表现告诫。
(8)Lighthouse 面板
作用:分析页面的团体质量,包罗性能、可访问性、SEO
Lighthouse 是一个主动化工具,用于提拔 Web 应用的质量。它可以天生关于页面性能、可访问性、SEO(搜刮引擎优化)等方面的陈诉,资助开发者辨认出可以改进的地方。
使用示例:


  • 按下 F12,打开 Lighthouse 面板。
  • 选择要分析的项目(比方性能、SEO 等),点击 “Generate Report” 天生陈诉。
总结:


  • Elements:检察和编辑页面布局和样式。
  • Console:检察调试信息,实行 JavaScript 代码。
  • Network:监控监控和分析页面加载的网络哀求。
  • Sources:调试 JavaScript 代码,设置断点。
  • Application:管理页面存储的数据和资源。
  • Performance:分析页面性能,辨认瓶颈。
  • Security:查抄页面的安全性。
  • Lighthouse:天生页面质量陈诉。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表