爬虫的基本流程

网页的请求与响应

网页的请求和响应方式是 Request 和 Response

Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

Response:服务器接收请求,分析用户发来的请求信息,收到请求信息后返回数据(返回的数据中可能包含其他链接,如:image、js、css等)

浏览器在接收 Response 后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收 Response 后,是要提取其中的有用数据。

1、发起请求:Request

请求的发起是使用 http 库向目标站点发起请求,即发送一个Request

Request对象的作用是与客户端交互,收集客户端的 Form、Cookies、超链接,或者收集服务器端的环境变量。

Request 对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过 HTML 表单或在网页地址后面提供参数的方法提交数据。

然后服务器通过 request 对象的相关方法来获取这些数据。request 的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。

Request 包含:请求 URL、请求头、请求体等

Request 请求方式: GET/POST

请求url: url全称统一资源定位符,一个网页文档、一张图片、 一个视频等都可以用url唯一来确定

请求头: User-agent:请求头中如果没有 user-agent 客户端配置,服务端可能将你当做一个非法用户;

cookies: cookie 用来保存登录信息

一般做爬虫都会加上请求头
例如:抓取百度网址的数据请求信息如下:

2、获取响应内容

爬虫程序在发送请求后,如果服务器能正常响应,则会得到一个Response,即响应;

Response 信息包含:html、json、图片、视频等,如果没报错则能看到网页的基本信息。例如:一个的获取网页响应内容程序如下:

以上内容输出的就是网页的基本信息,它包含 html、json、图片、视频等,如下图所示:

Response 响应后会返回一些响应信息,例下:

1、响应状态

  • 200:代表成功
  • 301:代表跳转
  • 404:文件不存在
  • 403:权限
  • 502:服务器错误

2、Respone header

  • set-cookie:可能有多个,是来告诉浏览器,把cookie保存下来

3、preview 是网页源代码

  • 最主要的部分,包含了请求资源的内容,如网页html、图片、二进制数据等

3、解析内容

解析 html 数据:解析 html 数据方法有使用正则表达式、第三方解析库如 Beautifulsoup,pyquery 等

解析 json 数据:解析 json数据可使用 json 模块

解析二进制数据:以 b 的方式写入文件

4、保存数据

爬取的数据以文件的形式保存在本地或者直接将抓取的内容保存在数据库中,数据库可以是 MySQL、Mongdb、Redis、Oracle 等……

写在最后

爬虫的总流程可以理解为:蜘蛛要抓某个猎物-->沿着蛛丝找到猎物-->吃到猎物;即爬取-->解析-->存储;

在爬取数据过程中所需参考工具如下:

  • 爬虫框架:Scrapy
  • 请求库:requests、selenium
  • 解析库:正则、beautifulsoup、pyquery
  • 存储库:文件、MySQL、Mongodb、Redis……

需要相关python资料的可以扫一扫备注【爬虫】

巨细!Python爬虫详解(建议收藏)相关推荐

  1. Python爬虫详解:爬虫是什么,如何做爬虫?

    Python爬虫详解:爬虫是什么,如何做爬虫? 读前必看: 本篇文章为教学向文章,通俗易懂的语言难免有不合适的地方,请大佬自行退场 爬虫是什么? 去查网,你会看到这样的解释: 爬虫是一种按照一定的规则 ...

  2. 巨细!Python爬虫详解

    爬虫(又称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者):它是一种按照一定的规则,自动地抓取网络信息的程序或者脚本. 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据 ...

  3. python爬虫步骤-Python爬虫详解,每一个步骤都给你细腻的讲解(附源码)

    序言 文中的文本及图片来自互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,著作权归著作人全部,如不太好请立即在线留言以作解决. 今日来教大伙儿怎么使用Python来抓取博海拾贝的图片,归类储存 ...

  4. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  5. python爬虫详解(三)——爬取世界常用密码并保存到字典内

    今天的爬虫有点特别,先爬取文本,然后base64解码,然后再存储至文本字典内 点个赞留个关注吧!! 首先我们需要爬取网站链接 代码如下: 爬取后我们只要password=内容,只要内容,不需要链接,所 ...

  6. python爬虫详解(七)——使用爬虫查看实时疫情状况

    因为最近疫情慢慢又开始起来了,我也很担心疫情,所以用爬虫做了一个疫情爬取程序,没有做太细,一个大致的框架,感兴趣的可以看一下,顺便提醒一下出门别忘了戴口罩,防范疫情!!! 点个赞留个关注吧!! 上代码 ...

  7. Spring三十五问,四万字+五十图详解 建议收藏

    这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的 ...

  8. python爬虫详解(五)——爬取王者荣耀英雄详细、攻略搭配、出装配置、铭文搭配、搭档/压制、入手详情

    今天给大家爬取一个王者荣耀的详情,让大家更好更快了解,说白了,就是想练练手 点个赞留个关注吧!! 今天爬取的内容相对简单,我也不知道难不难,可能对于新手来说会一点难,难就难着吧,不下功夫当然过不了,熬 ...

  9. python爬虫详解(四)——使用爬虫爬取你想要的图片 类似于图片下载器【百度引擎】

    这个爬虫用的是百度引擎,后续需要爬取别的网站需要自行更改 点个赞留个关注吧!! 我们废话不多说,上代码: # -*- coding: utf-8 -*- import re import reques ...

最新文章

  1. Nginx从基本原理到开发实践
  2. 伽卡他卡电子教室 百度百科_创建百度百科的好处
  3. 【年终总结】有三AI至今在人脸图像算法领域都分享了哪些内容?
  4. php的功能和特点,php有什么特点
  5. Amazon、Linux基金会开发边缘网络交换器操作系统
  6. 光纤交换机主要分为哪几类?
  7. 【渝粤题库】国家开放大学2021春2508学前儿童语言教育题目
  8. LeetCode-208 Implement Trie (Prefix Tree)
  9. matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
  10. win10 windows按钮右键没有命令提示符
  11. 过去15年,到底是什么真正推动了云计算的革命?
  12. [转载] Python的变量与常量与基本命名规则
  13. window创建计划自动启动服务器,WINDOWS2008计划任务无法启动
  14. bzoj 5084: hashit
  15. 学习ARM的一些基本知识,个人整理
  16. 弹出框插件bootbox
  17. hadoop培训感想
  18. MySQL单表数据量大优化方案及注意事项
  19. Excel中万能的查询函数——VLOOKUP
  20. 《JavaSE-第七章》之抽象的类-实例的对象-合理的封装

热门文章

  1. R语言ggplot2可视化移除数据中的NA值再可视化实战:消除图形中非常突出的NA柱状图、使用subset函数、使用drop_na函数
  2. R语言sqrt函数为数值开平方根实战
  3. R语言ggplot2可视化:可视化多个图像并组合起来(如果没有对齐,看着丑陋))、保证组合的图像图像区域对齐或者图像整体对齐(Align plot areas in ggplot)
  4. R语言为散点图添加凸包(convex hull):数据预处理(创建一个包含每组数据凸包边界的数据集)、ggplot2使用geom_polygon函数为可视化图像添加凸包(convex hull)
  5. R语言ggplot2可视化:将条形图(bar plot)和线图(line plot)组合在一起并使用双Y轴(double y axis)进行可视化、其中一个Y轴显示为百分比
  6. R语言聚类分析之层次聚类(hierarchical clustering)实战
  7. 稀缺:你是如何陷入贫穷与忙碌的
  8. java display html_css html布局之display属性_动力节点Java学院整理
  9. Nature Communications∣开花过程中,拟南芥茎尖分生组织基因表达和组蛋白标记的时空动态
  10. matlab节约里程法_芳烃产业链里程碑:唐山旭阳30万吨/年苯乙烯项目一次性开车成功...