网络爬虫是什么

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

认识爬虫

我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如360浏览器的爬虫称作360Spider,搜狗的爬虫叫做Sogouspider。

百度搜索引擎,其实可以更形象地称之为百度蜘蛛(Baiduspider),它每天会在海量的互联网信息中爬取优质的信息,并进行收录。当用户通过百度检索关键词时,百度首先会对用户输入的关键词进行分析,然后从收录的网页中找出相关的网页,并按照排名规则对网页进行排序,最后将排序后的结果呈现给用户。在这个过程中百度蜘蛛起到了非常想关键的作用。

百度的工程师们为“百度蜘蛛”编写了相应的爬虫算法,通过应用这些算法使得“百度蜘蛛”可以实现相应搜索策略,比如筛除重复网页、筛选优质网页等等。应用不同的算法,爬虫的运行效率,以及爬取结果都会有所差异。

爬虫分类

爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。

通用网络爬虫:是搜索引擎的重要组成部分,上面已经进行了介绍,这里就不再赘述。通用网络爬虫需要遵守robots协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。

robots协议:是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。

聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它与通用爬虫的区别在于,聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。聚焦网络爬虫极大地节省了硬件和网络资源,由于保存的页面数量少所以更新速度很快,这也很好地满足一些特定人群对特定领域信息的需求。

增量式网络爬虫:是指对已下载网页采取增量式更新,它是一种只爬取新产生的或者已经发生变化网页的爬虫程序,能够在一定程度上保证所爬取的页面是最新的页面。

爬虫应用

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,因此爬虫应运而生,它不仅能够被使用在搜索引擎领域,而且在大数据分析,以及商业领域都得到了大规模的应用。

1)数据分析

在数据分析领域,网络爬虫通常是搜集海量数据的必备工具。对于数据分析师而言,要进行数据分析,首先要有数据源,而学习爬虫,就可以获取更多的数据源。在采集过程中,数据分析师可以按照自己目的去采集更有价值的数据,而过滤掉那些无效的数据。

2)商业领域

对于企业而言,及时地获取市场动态、产品信息至关重要。企业可以通过第三方平台购买数据,比如贵阳大数据交易所、数据堂等,当然如果贵公司有一个爬虫工程师的话,就可通过爬虫的方式取得想要的信息。

爬虫是一把双刃剑

爬虫是一把双刃剑,它给我们带来便利的同时,也给网络安全带来了隐患。有些不法分子利用爬虫在网络上非法搜集网民信息,或者利用爬虫恶意攻击他人网站,从而导致网站瘫痪的严重后果。关于爬虫的如何合法使用,推荐阅读《中华人民共和国网络安全法》。

为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过robots.txt协议做了进一步说明,下面是淘宝网robots.txt的内容:

User-agent: Baiduspider
Disallow: /baidu Disallow: /s?
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh
.....
User-agent: *
Disallow: /123456789复制代码类型:[python]

从协议内容可以看出,淘宝网对不能被抓取的页面做了规定。因此大家在使用爬虫的时候,要自觉遵守robots协议,不要非法获取他人信息,或者做一些危害他人网站的事情。

为什么用Python做爬虫

首先您应该明确,不止Python这一种语言可以做爬虫,诸如PHP、Java、C/C++都可以用来写爬虫程序,但是相比较而言Python做爬虫是最简单的。下面对它们的优劣势做简单对比:

PHP:对多线程、异步支持不是很好,并发处理能力较弱;Java也经常用来写爬虫程序,但是Java语言本身很笨重,代码量很大,因此它对于初学者而言,入门的门槛较高;C/C++运行效率虽然很高,但是学习和开发成本高。写一个小型的爬虫程序就可能花费很长的时间。

而Python语言,其语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如urllib、requests、Bs4等。Python的请求模块和解析模块丰富成熟,并且还提供了强大的Scrapy框架,让编写爬虫程序变得更为简单。因此使用Python编写爬虫程序是个非常不错的选择。

编写爬虫的流程

爬虫程序与其他程序不同,它的的思维逻辑一般都是相似的,所以无需我们在逻辑方面花费大量的时间。下面对Python编写爬虫程序的流程做简单地说明:

先由urllib模块的request方法打开URL得到网页HTML对象。

使用浏览器打开网页源代码分析网页结构以及元素节点。

通过BeautifulSoup或则正则表达式提取数据。

存储数据到本地磁盘或数据库。

当然也不局限于上述一种流程。编写爬虫程序,需要您具备较好的Python编程功底,这样在编写的过程中您才会得心应手。爬虫程序需要尽量伪装成人访问网站的样子,而非机器访问,否则就会被网站的反爬策略限制,甚至直接封杀IP,相关知识会在后续内容介绍。

(0)

相关推荐

  • Python网络爬虫相关基础概念!

    网络爬虫是Python应用领域之一,也是很多学生比较关注的问题,今天就为大家介绍一下Python网络爬虫相关基础概念. 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够 ...

  • Python爬虫与数据分析,采集股票数据进行分析!

    Python爬虫与数据分析,采集股票数据进行分析!

  • 你要偷偷的学Python,然后惊呆所有人(第七天)

    标题无意冒犯,就是觉得这个广告挺好玩的 文章目录 前言 欢迎来到我们的圈子 初见爬虫 为什么是爬虫 通用爬虫架构 爬虫的工作步骤 优秀爬虫的特性 1.高性能 2.可扩展性 3.健壮性 4.友好性 爬虫 ...

  • Python网络爬虫学习基础笔记

    python requests库爬虫基础 本次学习的python爬虫所使用的是requests库 下面就是requests库的7种主要方法 方法名 说明 requests.request() 构造一个 ...

  • 什么是网络爬虫?Python爬虫工作原理!

    随着互联网的发展,大家对于爬虫这个词已经不再陌生了.但是什么是爬虫?爬虫的工作原理是什么呢?对于IT小白还是非常疑惑的,今天小编就为大家详细的介绍一下. 什么是网络爬虫? 网络爬虫就是一种从互联网抓取 ...

  • 什么是爬虫?Python网络爬虫可以做什么?

    网络爬虫是Python的应用领域之一,世界上80%的爬虫都是基于Python开发的,那么Python爬虫能干什么呢?我们一起来看看吧. 什么是爬虫? 网络爬虫,是一种按照一定的规则,自动地抓取万维网信 ...

  • 一文弄清Python网络爬虫解析库!内含多个实例讲解

    ​ 在了解爬虫基础.请求库和正则匹配库以及一个具体豆瓣电影爬虫实例之后,可能大家还对超长的正则表达式记忆犹新,设想如果想要匹配的条目更加多那表达式长度将会更加恐怖,这显然不是我们想要的,因此本文介绍的 ...

  • Python新手学习网络爬虫主要涉及哪些知识?

    爬虫,被称为网络机器人,现在爬虫在我们生活中具有非常重要,可以解决很多繁琐的过程,而python作为爬虫的首选语言,受到很多人的关注和喜欢.那么学习python做爬虫主要学习哪些内容呢?小编为大家介绍 ...

  • 应对“网络爬虫”刑事犯罪的新路径探索

    --覃某某等十二人侵犯著作权案李 慧北京市海淀区人民检察院一级检察官*本文刊登于<中国检察官>杂志2021年2月(经典案例版)摘  要:在数字经济时代,网络侵犯知识产权类犯罪对刑事司法提出 ...

  • 腾讯课堂 | Python网络爬虫与文本分析

    课程纲要 ·课程目标: 掌握Python语法.网络爬虫.文本分析.机器学习的核心知识点和分析思路·核心知识点: 爬虫原理及应用. 非结构化文本数据挖掘的思路及方法.机器学习应用等·环境配置: Pyth ...

  • 网络爬虫的入罪标准与路径研究

    网络爬虫(Web Crawler),又称网络蜘蛛或者网络机器人,是一种按照一定规则自动抓取互联网信息的程序.在大数据时代,网络爬虫已成为互联网抓取公开数据的常用工具之一,可以实现对文本.图片.音频.视 ...

  • 优惠券 | Python网络爬虫与文本数据分析

    课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而是数据科学家,尤其是社会科学家,涵盖的学科有 ...