当前位置: 首页 > 后端技术 > Python

小白学习Python爬虫(九):爬虫基础

时间:2023-03-25 19:25:57 Python

人生苦短,我用Python上一篇传送门:小白学习Python爬虫(一):入门小白学习Python爬虫(二):前期准备(一)基础类库安装小白学习Python爬虫(三):前期准备(二)Linux基础介绍小白学习Python爬虫(四):前期准备(三)Docker基础介绍小白学习Python爬虫(五):前期准备(四)数据库基础小白学习Python爬虫(六):前期准备(五)爬虫框架的安装小白学习Python爬虫(七):HTTP基础【小白学习Python爬虫(八):网页基础】()一个爬虫的核心是什么爬虫?让我们以一种易于理解的方式来谈谈它。爬虫是一种爬取网页,按照一定的规则从中提取信息,自动重复上述过程的程序。一个爬虫,首先就是爬取网页,这里主要是指获取网页的源代码。网页的源代码中会包含我们需要的信息,而我们要做的就是从源代码中提取这些信息。当我们请求一个网页时,Python为我们提供了很多库来做这件事,比如官方的urllib,以及第三方提供的requests和aiohttp。我们可以使用这些库来发送HTTP请求并获取响应数据。得到响应后,我们只需要解析body部分的数据就可以得到网页的源代码。拿到源码之后,我们接下来的工作就是解析源码,从中提取我们需要的数据。提取数据最基本最常用的方法就是使用正则表达式,但是这种方法比较复杂,容易出错,但是不得不说,一个非常擅长写正则表达式的人,根本不需要下面这些解析库,这是一种放之四海而皆准的方法。说句悄悄话,小编的正则表达式写得不好,所以用了这些第三方提供的类库。提取数据的库有BeautifulSoup、pyquery、lxml等。利用这些库,我们可以高效、快速地从HTML中提取网页信息,例如节点的属性、文本值等。从源代码中提取数据后,我们将保存数据。有多种方法可以保存数据。可以直接保存为txt、json、Excel文件等,也可以保存到数据库中,如Mysql、Oracle、SQLServer、MongoDB等。一般来说,我们抓取的是HTML网页的源代码,也就是我们所能看到的常规直观的网页信息。但是有些信息并没有直接和HTML一起返回给网页。会有各种API接口。该接口返回的数据现在大部分是JSON格式,部分数据格式会返回XML。有一些单独的奇怪接口直接返回程序员定义的字符串。这种API数据接口需要具体问题具体分析。还有一些信息,比如各大图片站和视频站(比如抖音,B站),我们要抓取的信息是图片或者视频,这些信息都是以二进制的形式存在的,我们需要将这些二进制的进行转换数据被抓取然后转储。此外,我们还可以抓取一些资源文件,比如CSS、JavaScript等脚本资源,以及woff等一些字体信息。这些信息是网页不可或缺的元素,只要浏览器能访问到,我们就可以抓取。爬取今日核心内容的现代前端页面来了!!!很多时候,当我们使用HTTP请求库爬取网页源代码时,爬取的信息与我们在网页上看到的信息完全不同,只有短短的几行。这是因为近年来前端技术突飞猛进,大量的前端模块化工具被用来构建前端页面。比较常用的框架有Vue、React等。结果,我们得到的网页只有一个空壳,比如这样:favicon.ico">演示项目

</body>代码来源是博主平时做的一些小东西。其中,博主省略了大量已经介绍过的JavaScriptbody节点。body节点中只有一个id为app的节点,但需要注意的是它是在body节点JavaScript文件的末尾引入的,负责整个网页的渲染。浏览器打开这个页面后,首先会加载HTML的内容,然后你会发现加载了JavaScript脚本文件。获取到这些脚本文件后,就会开始执行其中的代码,JavaScript脚本文件会修改整个页面的HTML代码,为其添加节点,完成整个页面的渲染。但是当我们使用请求库去请求这个页面的时候,我们只能得到当前的HTML内容,不会帮我们得到这个JavaScript脚本文件,帮我们执行这个脚本文件来渲染整个HTMLDOM节点,当然我们也你看不到你在浏览器中看到的东西。这也解释了为什么有时我们得到的源代码和我们在浏览器中看到的不一样。当然,遇到这种情况不要惊慌。我们还可以使用Selenium和Splash等库来模拟浏览器中的JavaScript渲染。后面我们会慢慢讲这些内容。本文主要帮助同学们对爬虫有一个基本的了解,以方便后续的学习。参考:https://cuiqingcai.com/5484.html如果我的文章对你有帮助,欢迎扫码关注作者的公众号:获取最新干货推送:)