一、什么是爬虫

爬虫就是获取网页并提取和保存信息的自动化程序。

1)我们可以把互联网比作一张大网,而爬虫(网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。

2)虽然不使用爬虫我们通过手工方式也可以提取网页中的信息,但是当量特别大或者想快速获取大量数据的话,肯定还是要借助程序的。爬虫就是代替我们来完成这份工作的自动化程序,它可以在抓取过程中进行各种异常、错误重试等操作,确保爬取持续高效地运行。

二、爬虫爬虫的过程

1、获取网页
爬虫首先要做的工作就是获取网页,也就是获取网页的源代码,然后从源代码中提取想要的信息。
一般情况下,向网站服务器发送一个请求,返回的响应体就是网页源代码。为了构造请求并发送给服务器,然后接收到响应并将其解析出来,Python提供了许多库来帮助我们实现这个操作,如urllib,request等。我们可以用这些库来帮助我们实现HTTP请求操作。

2、提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。提取方法有两种:

  • 采用正则表达式提取,这是一个万能的方法,但是在构造正则表达式时比较复杂且容易出错。
  • 由于网页的结构有一定的规则,所以还有一些根据网页节点属性、CSS选择器或Xpath选择器来获取网页信息的库,如Beautiful Soup、pyquery、lxml等。使用这些库可以高效快速地从中提取网页信息,如节点的属性、文本值等。

3、保存数据
提取信息后,一般会将提取到的数据保存到某处以便后续使用。保存形式多种多样,可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如MySQL和MongoDB等,也可以保存至远程服务器,如借助SFTP进行操作。

爬虫的基本原理:爬虫概述及爬取过程相关推荐

  1. python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

    原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...

  2. python提取图片文字视频教学_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    一.爬虫记得基本方法 1.1 爬虫概述 ​网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使 ...

  3. Python网络爬虫数据采集实战:Scrapy框架爬取QQ音乐存入MongoDB

    ​    通过前七章的学习,相信大家对整个爬虫有了一个比较全貌的了解 ,其中分别涉及四个案例:静态网页爬取.动态Ajax网页爬取.Selenium浏览器模拟爬取和Fillder今日头条app爬取,基本 ...

  4. python爬取文字和图片_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    [toc] 一.爬虫记得基本方法 1.1 爬虫概述 ​ 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  5. Python爬虫实现百度贴吧文本爬取【每天近千万级数据量】

    一.概述 我先澄清一下,我并不是单纯的为了爬数据而爬数据,这其实是为了之后的语音识别的语言模型训练积累数据的,所以我就实现了一个这样的爬虫,它可以不断的爬取各个指定贴吧的帖子文本内容,并把它存入Mon ...

  6. python 扒数据_不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据

    Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得 ...

  7. 网络爬虫:Python如何从网上爬取数据?

    网络爬虫,就是按照一定规则自动访问互联网上的信息并把内容下载下来的程序或脚本. 在整个的Python爬虫架构里,从基础到深入我分为了10个部分:HTTP.网页.基本原理.静态网页爬取.动态网页爬取.A ...

  8. mysql 去重con_python 爬虫 实现增量去重和定时爬取实例

    前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能: 本文作者 ...

  9. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

最新文章

  1. 博客园添加访问人数统计超详细教程
  2. ORACLE 11G安装全过程
  3. pdf to word android,Scanned PDF to Word
  4. 知乎热议:嵌入式开发中C++好用吗?
  5. python识别人脸多种属性_深度学习人脸识别仅9行python代码实现?同时高效处理100张相片?...
  6. 【原创】CLEVO P157SM外接鼠标键盘失灵解决:更换硅脂(附带最新跑分数据)
  7. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)
  8. eclipse没有server选项怎么解决
  9. 7-12 文件传输 (25 point(s))
  10. 经典sql练习题(oracle版)
  11. 淘宝评论不回复买家怎样看到买家评论,如何提前处理买家差评
  12. pom文件报红Failure to find cn.xx:xxx:pom:3.x.x in https://maven.aliyun.com/repository/public/ was cached
  13. uni-app学习之旅(二)uni-app开发规范
  14. ogg_for_bigdata (oracle 数据通过ogg到hbase)
  15. Oracle 利用储存过程插入循环插入大量数据方法
  16. 技术博客哪家强:CSDN、博客园、简书、开源中国OSChina等博客的详细分析比较
  17. 计算机主板定位孔尺寸,775针主板上四个 CPU散热器固定孔 的孔距 分别是多少...
  18. csgo怎么绑定一键跳投_CSGO投掷物一键跳投的设置方法
  19. 基于stm32f103c8t6与手机蓝牙控制LED
  20. JS实现新闻播报滚动效果

热门文章

  1. *判断奇偶数的函数*/
  2. 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详细教程
  3. 热点丨关闭代扣通道,影响的是谁?
  4. 美国程序员枪击案后的48小时,请放过程序员吧!
  5. 软考高项 : (01)论信息系统项目的人力资源管理
  6. A股:未来至少翻10倍的“医药龙头股”,就这5只(附名单)
  7. 申宝股票-题材股分化
  8. 有车一族 教你如何防止被电子眼拍到
  9. 李开复给中国学生的第三封信
  10. Unity2019学习:常用功能--Camera摄像机