网页爬虫抓取百度图片(浅谈一下爬虫目的是让准备学爬虫或者刚开始起步的 )
优采云 发布时间: 2021-11-03 08:25网页爬虫抓取百度图片(浅谈一下爬虫目的是让准备学爬虫或者刚开始起步的
)
前言
爬虫是一项非常有趣的技术。你可以利用爬虫技术获取别人无法获取或需要付费才能获取的东西。它还可以自动抓取并保存大量数据,以减少手动做一些累人的工作的时间和精力。
可以说很多人是学编程的,不玩爬虫的。这意味着无论是业余、私人工作还是专业爬行动物,爬行动物的世界都非常精彩。
今天给大家讲讲爬行。爬行的目的是让准备学习爬行或刚入门的朋友对爬行有更深入、更全面的了解。
文章目录前言一、认识爬虫1.什么是爬虫2.爬虫的分类3.机器人协议二、爬虫的基本流程1.爬虫4步2.请求和响应三、理解请求1.请求方法2.请求URL3.请求头4.请求体5.实操查看Request 四、了解Response1.Response status2.Response header3.Response body五、爬虫能得到什么样的数据六、如何解析数据七、如何保存数据一、了解爬虫1.什么是爬虫
一句话给大家介绍一下著名的爬虫请求网站以及提取数据的自动化程序。
下面我们来拆解了解一下爬虫:
网站的请求就是向网站发送请求。比如去百度搜索关键词“Python”。这时候我们的浏览器会向网站发送请求
提取数据 包括图片、文本、视频等在内的数据称为数据。我们发送请求后,网站 会将搜索结果呈现给我们。这实际上是返回的数据。这时候我们就可以提取数据了。
自动化程序是我们编写的代码,用于实现过程数据的自动提取,如批量下载和保存返回的图片,而不是一一手动操作。
2. 爬虫分类
根据使用场景,爬虫可以分为三类
①一般履带大而齐全
强大的采集 人脸被百度浏览器等搜索引擎广泛使用,是一个大型爬虫程序。
②专注于小而精的爬行动物
功能比较单一,只抓取特定网站的特定内容。比如去某个网站批量获取一些数据。这也是我们个人使用的最常见的爬虫类型。
③增量爬虫只采集更新内容
这实际上是聚焦爬虫的迭代爬虫。它只是 采集 更新的数据与旧数据相比吗?采集 相当于一直存在和运行。只要有符合要求的数据更新,就会自动爬取新的数据。
3.机器人协议
在爬虫中,有一个叫做 Robots 的协议。您需要注意它,也称为“网络爬虫排除标准”。它的作用是网站告诉你哪些东西可以爬,哪些东西不能爬。
在哪里可以看到这个机器人协议。一般情况下,可以直接在网站的首页URL后添加/robots.txt进行查看。比如百度的Robots协议可以看到有很多URL是规定不能爬取的。例如Disallow:/shifen/表示当前Disallow:/shifen及Disallow:/shifen下的子目录无法爬取。
实际上,这份Robots协议属于君子协议。对于爬行动物来说,基本上是口头约定。如果你违反了,你可能会被追究法律责任,但如果不违反,爬虫将无法抓取任何数据,所以通常双方都会保留一份。闭上眼睛,不要太嚣张。
二、爬取基本流程1.爬取4步
爬虫是如何工作的?爬虫程序大致可以分为四个步骤。
①发起请求
一个请求通过 HTTP 库发送到目标站点,该请求可以收录额外的头部和其他等待服务器响应的信息。
②获取回复内容
如果服务器可以正常响应,就会得到一个ResponseResponse内容。获取的页面内容类型可以包括HTML、Json字符串、二进制数据(如图片、视频等)。
③内容分析
获取的内容可能是HTML,可以使用正则表达式和网页解析库进行解析。可能是Json,可以直接转成Json对象。它可以是可以保存或进一步处理的二进制数据。
④保存数据
许多保存的数据样式可以保存为文本或保存到数据库或保存为特定格式的文件。
基本上,这是爬虫必须遵循的四个步骤。
2.请求和响应
请求和响应是爬虫最重要的部分。请求和响应之间是什么关系?两者的关系如下
简单的理解,当我们在电脑浏览器上搜索东西的时候,比如前面提到的在百度搜索“Python”,你已经通过点击百度向百度服务器发送了一个Request。请求收录大量信息。比如身份信息,请求信息等,服务器收到请求后,做出判断,返回一个Response给我们的电脑。这里面也收录了很多请求成功等信息,比如我们请求的信息的文字、图片、视频等。
这应该很容易理解。接下来,让我们仔细看看请求和响应。
三、理解请求
请求收录什么?它主要收录以下内容
1.请求方法
请求方法可以理解为你向网站问好的方式。你必须从 网站 获取数据,你必须以正确的方式迎接它。和你打交道是可以的,就像你要别人借一样。你必须先敲门打招呼。你可以爬上窗户进去。任何人看到它都必须为你扔掉。
主要的请求方法是 GET 和 POST。还有其他方法,例如 HEAD/PUT/DELETE/OPTIONS。最常用的方法是GET。
2.请求网址
什么是网址?URL 的全名是统一的资源定位符。比如一个网页文档、图片、视频等,在爬虫中都有一个唯一的URL,我们可以理解为一个URL或者一个链接。
3.请求头
请求头的英文名称是什么Request Headers通常是指请求中收录的头信息,比如User-Agent、Host、Cookies等。
当你向网站发送请求时,这些东西就相当于你的身份信息。您经常需要将自己伪装成普通用户来逃避您的目标。网站 将您标识为爬虫并避免了一些反采摘问题。顺利获取数据。
4.请求正文
官方说法是请求中携带的附加数据,例如提交表单时的表单数据。
怎么理解,比如去公公家提亲,总不能空手去提亲吧?
在爬虫中如何理解。例如,在某些页面上,您必须先登录,或者您必须告诉我您的请求。比如你在百度网页上搜索“Python”,那么关键词“Python”就是你要承载的请求,看到你的请求,百度就知道你要做什么了。
当然,请求体通常用在 POST 请求方法中。GET请求的时候,我们一般会在URL中拼接。先了解一下。后续具体爬虫可以加深理解。
5.实用视图请求
说完了Request的理论,我们可以去实际操作,看看Request在哪里,收录什么。
以谷歌浏览器为例,我输入关键字“Python”,找到了一堆结果。我们使用网页自带的控制台窗口来分析我们发送的Request请求。
按住F12或在网页空白处右击选择“检查”,可以看到控制台中有很多选项。例如,上列有一个菜单栏。主要爬虫一般我们使用元素元素和网络网络其他更常见。东西暂时不用。当你学习更高级的爬虫时,你会使用它。比如JS逆向工程的时候,可能会用到Application窗口,后面再理解。
Elements 收录请求结果的所有元素,例如每张图片的源代码。特别是当您单击左上角的小箭头时,您移动到的每个位置都会显示在“元素”窗口中。代码。
网络是爬虫常用的网络信息。其中包括我们的请求。让我们检查网络窗口下的禁用缓存,然后单击全部。
刷新网页看看效果。您可以看到我们发送了 132 个请求请求。不要好奇。虽然我们只向百度发送了类似“Python”这样的请求,但有些请求是附在网页上的。
虽然有很多类型的图像格式,例如png、jpeg 等,但是您可以滑动到顶部。在类型列中,有文档。这种类型是网络文档的含义。单击它以获取我们的请求信息。
单击文档后,会出现一个新的菜单栏。在Headers列下,我们可以看到Request URL,也就是我们前面提到的请求URL。这个URL就是我们实际从网页请求的URL,可以看到请求方法。这是一个 GET 请求。
再次向下滑动可以看到我们前面提到的Request Headers有很多信息,但是我们前面提到的User-Agent、Host、Cookies都是我们提供给服务器的信息。
虽然Request Headers里面的内容很多,但是我们在编写爬虫程序的时候也要做这方面的伪装工作,但是并不是所有的信息我们都要选择性的写一些重要的信息。例如,User-Agent 必须带 Referer,而 Host 是选择性使用 cookie。登录的时候会带四个常用物品来伪装。
至于请求体,我暂时不去查,因为我们的请求方式是GET请求只能在POST请求中查看。爬虫用了没有关系,你自然就懂了。
四、了解响应
Response 主要包括 3 条内容,我们来一一看看。
1.响应状态
我们发送请求后,网站 会返回一个Response,其中收录响应状态码。响应状态大致可以分为以下几种
①范围为200,例如响应状态码200表示成功。
②范围为三百,如301,表示跳跃。
③四百范围,如404,找不到网页。
④五百的范围,比如502,找不到网页。
对于爬虫来说,两三百是我们最想看到的响应状态。获取数据是可能的。四五百基本都冷了,拿不到数据。
比如我们刚刚发送了之前的Request请求,在文档文件的Headers窗口下的General中可以看到响应状态码为200,说明网页成功响应了我们的请求。
2. 响应头
服务器提供给我们的信息中也会有一个响应头。这部分收录内容类型、内容长度、服务器信息、设置cookies等。
事实上,响应头对我们来说并没有那么重要。看看这里。
3. 响应正文
这一点很重要,除了上面第一点的响应状态,因为它收录了请求资源的内容,比如网页 HTML 和图像二进制数。
哪里的响应正文也在文档文件的Response栏中,向下滑动可以看到里面有很多响应数据。这是我们得到的数据,有的可以直接下载,有的需要技术分析才能得到。
五、爬虫能得到什么样的数据
爬虫能够获取什么样的数据,基本上可以分为这几类
① Web 文档,如 HTML 文档、Json 格式的文本等。
②图片是将二进制文件保存为图片格式得到的。
③视频也是二进制文件,可以保存为视频格式。
④其他 反正能看到的其他东西,理论上都是爬虫能得到的,看难易程度。
六、如何解析数据
从上面可以看出,我们可以成功发送请求,网页会返回大量数据。有数千甚至数万个代码。那么如何在这么多的代码中找到我们想要的数据就是以下常用的方法
①直接治疗。当网页返回的数据是一些文本时,我们想要的内容可以直接处理,无需过滤。
②Json分析。如果返回的网页不是HTML数据而是Json数据,则需要Json解析技术。
③正则表达式。如果返回的数据是符合正则表达式的数据,则可以使用正则表达式进行分析。
④其他分析方法。常用的有XPath、BeautifulSoup、PyQuery,都是爬虫常用的解析库。
七、如何保存数据
获取数据后常用的保存数据的方法如下
①文字。可以直接保存为纯文本、EXCEL、Json、Xml等类型的文本。
②关系数据库。数据可以保存到MySQL、Oracle等关系型数据库中。
③非关系型数据库。比如MongoDB、Readis和Key-Value存储。
④ 二进制文件。比如图片、视频、音频等可以直接保存为特定格式。
今天聊聊爬虫,欢迎大家在下方评论区留言。