爬虫的定义

爬虫,全名为网络爬虫(英文:web crawler),是一种请求网络资源并提取保存的计算机自动化程序。

最典型的爬虫是百度爬虫。它通过第一时间收集互联网的最新资源并建立索引,使得用户可以在百度(www.baidu.com)中快速地搜索互联网资源。

爬虫的基本流程

一:发送 HTTP 请求(Request)

通过 Python 库向目标站点发送 HTTP 请求,等待服务器响应。

如下图,即是客户端向 example.com 服务器发送的 HTTP 原始请求。

二:获取响应内容(Response)

接着,如果服务器 example.com 正确理解了上图的请求,就会返回 200 状态码的响应内容。

如下图:

HTTP/1.1 表示使用的是 1.1 版本的 HTTP 协议。

200 是状态码,后面的 OK 是对状态码的简单描述(status text)。常见的 HTTP 状态码还有301(资源永久转移)、404(未找到资源)、500(服务器内部错误)等。

Content-Type 和 Content-Length 都是响应结果的头部(header)。分别表示:内容的类型及内容的长度。

隔了一行之后,则是响应头(Response Body)。这里可以明显的看出,这是 HTML 格式的响应结果。

三:解析结果(Extract)

从上图可知,返回的是 HTML 格式的响应结果。Python 一般使用 Beautiful Soup 或 pyquery 这两个库去解析。之后会讲解它们,这里不具体展开。

四:进一步处理数据

根据业务需求,对数据进一步处理。比如:数据的清洗、脱敏、分类等。小编推荐一个学Python的学习裙【 二二七,四三五,四五零 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!希望新手少走弯路

五:保存数据

假设响应结果被解析成如下内容:

标题Example Domain内容

Example Doamin

根据实际情况,保存到文件、非关系型数据库或关系型数据库中。

代码示例

python3爬虫入门教程-Python3爬虫教程基础篇之一:什么是爬虫相关推荐

  1. CGA建模教程——形状语法(基础篇)

    CGA建模教程--形状语法(基础篇) 本教程是使用CityEngine的CGA进行建筑建模的入门教程. 原文链接:http://desktop.arcgis.com/en/cityengine/lat ...

  2. Scrapy爬虫入门系列2 示例教程

    本来想爬下http://www.alexa.com/topsites/countries/CN 总排名的,但是收费了 只爬了50条数据: response.xpath('//div[@class=&q ...

  3. Linux命令入门教程(二):目录基础篇

    2.1 目录及路径基础介绍 在linux中,目录(directory)通常也可表述为路径,一般不叫文件夹. 文件系统中,目录树的起点为根目录,任何路径都能以根目录来寻址. 以"/" ...

  4. Linux命令入门教程(三):文件基础篇

    3.1 文件基础介绍 Linux系统的一个重要思想:一切皆文件. 在Linux中,一个普通文件如.txt文本是一个文件,一个压缩包是一个文件,一个设备也是一个文件. Linux中文件的后缀名并不重要, ...

  5. 【Axure 教程】中继器(基础篇)

    一.初识中继器 中继器是 Axure 中一个比较高阶的应用,它可以让我们在纯静态网页中模拟出类似带有后台数据交互的增删改查的效果,虽然它没有真正意义上帮我们存储任何的数据,但是当我们在一次项目体验过程 ...

  6. python3中字符串编码常见种类_Python基础篇—标准数据类型—String字符串编码问题...

    我要开始写String编码问题了...脑壳疼.. 在String字符串的第一篇末尾有留一个坑,就是关于中文字符串编码.整个编码的故事说起来都是很费劲的,我也只能把我所知道的梳理整理一下,在日常敲码过程 ...

  7. 史上最简单MySQL教程详解(基础篇)之SQL语句以及预留关键字介绍

    SQL简单介绍 数据操作语句 (Data Manipulation Language,DML) 数据定义语句 (Data Definition Language ,DDL) 数据控制语句 (Data ...

  8. 「PS-CC2019新版教程」画板工具-基础篇

    上期我们讲了PS的"选择移动"工具的使用,就是将选中的一个图层从当前位置到下一个位置的移动!今天,说一下,画板工具! 调出方法: 第一种:鼠标移动到左侧的移动工具处,鼠标右键,切换 ...

  9. 史上最简单MYSQL教程详解(基础篇)之初识MySQL数据库以及环境配置

    什么是数据库 数据库管理系统 数据库应用程序 数据库的种类 什么是MySQL MySQL数据库有哪些优势 SQL语句 常用术语 MySQL的安装 什么是数据库 数据库通俗的说法就是将数据信息集中起来统 ...

  10. mysql 前沿表设计_史上最简单MySQL教程详解(基础篇)之表的维护和改造

    表结构修改 在我们实际的开发的过程,随着开发的深入,会发现我们事先设计好的表可能已经不再适合,就会设计到对表的修改和改造.这里我就向大家介绍一下一些常用的方法和情况.这里我们使用的是之前在中就已经使用 ...

最新文章

  1. c语言自学技巧,轻松学C语言,教给你学习技巧
  2. 分治法【锦标赛问题:设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能赛一次; (3)循环赛一共进行n-1天。】
  3. [翻译] WindowsPhone-GameBoy模拟器开发二--Rom文件分析
  4. Silverlight学习笔记(九)-----RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransform】...
  5. mysql max字符串数值_针对字符串值的mysql:min()和max()。
  6. 不同语言Sql Server的库交换出现乱码
  7. Silverlight实用窍门系列:58.Silverlight中的Binding使用(三)-数据集合的绑定
  8. python微信群定时发送消息_Python3 itchat实现微信定时发送群消息的实例代码
  9. 前端开发面试题-JavaScript(一)
  10. MSDOS兼容硬盘分区限制
  11. HTML生成一维码(带条码
  12. 世界上最大的计算机硬盘,三星:2.5英寸16TB,我是史上最大SSD硬盘-消费电子-与非网...
  13. 数据可视化UI设计素材资源文件sketch大屏可视化数据展示
  14. poi根据模板导出word(包含图片、动态生成表格、合并单元格)(亲测有效)
  15. 黑马程序员_工欲善其事必先利其器
  16. 51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真
  17. 产品3周迭代一次,启信宝驾驭8000万企业征信的平台架构
  18. linux设置mac地址命令,[转载]Linux下修改MAC地址
  19. Qt+ECharts开发笔记(五):ECharts的动态排序柱状图介绍、基础使用和Qt封装Demo
  20. notepad++配置java,c,c++,python,shell运行环境

热门文章

  1. AngularJS directive入门例子
  2. 各种视频编码器的命令行格式
  3. 使用JAX-RS创建RESTful Web Service
  4. 从零开始学习html(七)CSS样式基本知识
  5. Android开发技术周报 Issue#20
  6. ashx session 使用注意要点。
  7. ?通配符 以及扩展通配符在范型中的应用。。。。。。。。。。。。。。。。。。...
  8. [导入]IIS无法显示asp页面
  9. keil中使用Astyle格式化你的代码的方法-keil4 keil5通用
  10. RAP、Mock.js、Vue.js、Webpack