什么叫爬虫python_网络爬虫是什么?
互联网诞生之初,是为了让人们更容易的分享数据、交流通讯。互联网是桥梁,连接了世界各地的人们。网站的点击、浏览都是人为的,与你聊天的也是活生生的人。然而,随着技术的发展,人们对数据的渴望,出现了各种网络机器人,这个时候,你不知道屏幕那端跟你聊天的是一个人还是一条狗,你也不知道你网站的浏览量是人点击出来的,还是机器爬出来的。
表面上看,互联网上是各种各样的人;暗地里,已经布满了形形色色的网络爬虫。
一、搜索引擎时代的网络爬虫
关于网络爬虫的概念,我们先来瞅瞅维基百科(Wikipedia)上面的定义:
网络爬虫(英语:web crawler),也叫网上蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。
这里提到的编纂网络索引,就是搜索引擎干的事情。我们对搜索引擎并不陌生,Google、百度等搜索引擎可能每天都在帮我们快速获得信息。可能小猿们要问,搜索引擎的工作过程是怎样的呢?
首先,就是有网络爬虫不断抓取各个网站的网页,存放到搜索引擎的数据库;
接着,索引程序读取数据库的网页进行清理,建立倒排索引;
最后,搜索程序接收用户的查询关键词,去索引里面找到相关内容,并通过一定的排序算法(Pagerank等)把最相关最好的结果排在最前面呈现给用户。
看上去简简单单的三个部分,却构成了强大复杂的搜索引擎系统。而网络爬虫是其中最基础也很重要的一部分,它决定着搜索引擎数据的完整性和丰富性。我们也看到网络爬虫的主要作用是获取数据。
由此简单地说,网络爬虫就是获取互联网公开数据的自动化工具。
这里要强调一下,网络爬虫爬取的是互联网上的公开数据,而不是通过特殊技术非法入侵到网站服务器获取的非公开数据。
可能你要问,什么是“公开数据”呢?简而言之,就是网站上公开让用户浏览、获取的数据。
虽然数据是公开的,但是当某人或机构(如,搜索引擎)大量收集这些数据并因此获利时,也会让数据生产方——网站很不爽,由此而产生法律纠纷。比如,早些年Google因此而惹上官司。
网站们看着搜索引擎因为搜索引擎抓取自己的内容而获利不爽,但也因为搜索引擎带来的流量而高兴不已,于是就出现了网站主动进行搜索引擎优化(SEO, Search Engine Optimization),也就是告诉搜索引擎,我这里的内容好,快来抓取吧!
搜索引擎和网站的博弈,催生了一个君子协议: robots.txt。网站在自己的网站上放上这个文件,告诉爬虫哪些内容可以抓,哪些内容不可以抓;搜索引擎读取网站的robots.txt来知道自己的抓取范围,同时也在访问网站时通过User-Agent来向网站表明自己的身份(这种表明也是君子协议,技术上很容易假扮他人),比如,Google的爬虫叫做Googlebot,百度的爬虫叫做Baiduspider。这样,二者和平共处,互惠互利。
二、大数据时代的网络爬虫
时代在发展,数据变得越来越重要,“大数据”已经成为各行各业讨论的话题,人们对数据的渴望也变成贪婪,数据也就成了“石油”,爬虫也就成了“钻井机”。
为了获取石油,人们使用钻井机;为了获取数据,人们使用爬虫。为了获得数据,人们把互联网钻的是“千疮百孔”。哈哈,这里有些夸张。但人们对数据的获取,已经打破的君子协定,和网站们玩起了猫捉老鼠的游戏,展开了道高一尺魔高一丈的较量。
为什么说是较量呢?因为大量爬虫的行为会给网站带来网络带宽、服务器计算力等方面很大的压力,却几乎不带来任何利益。为了降低这种毫无利益的压力和避免自己的数据被他人集中收集,网站肯定要通过技术手段来限制爬虫;另一方面,爬虫为了获取石油般的数据,就想方设法来突破这种限制。
对于这种较量的理解,还是看活生生的例子来得更透彻。
你有没有花几十块钱让某个软件帮你抢火车票?
攻: 抢票爬虫会不断访问12306来获得火车票座位数据,并进而购买火车票;
防: 12306网站出了变态的认证码,人都经常识别错误。
各种秒杀让你很受伤!
攻: 研究网站的秒杀机制,提前写好爬虫,秒杀时刻,人快不过机器;
防: 有些秒杀的宣传作用很大就懒得防;有些秒杀机制复杂到你很难写出对应的爬虫;有些秒杀成功被发现作弊也会被取消。
爬虫变得越来越多,越来越肆无忌惮,网站也不得不使用各种技术手段来禁止或限制爬虫。这些手段大致包括:
使用账户保护数据,数据仅对登录用户可见;
数据多次异步加载;
限制IP访问频率,甚至封锁IP;
输入验证码以获得访问权限;
数据在服务器端加密,浏览器端解密;
……
而这些手段也是爬虫在技术实现中要解决和突破的问题。
三、网络爬虫的自我约束
看完上面“猫捉老鼠”的游戏的描述,小猿们不禁要问,网站和爬虫这种对抗较量会不会引起法律问题?
这是一个很好的问题,也是值得每个爬虫开发者思考的问题。
爬虫作为一种技术本身可能无所谓善恶,但是使用它的人就有善恶之分。如何使用爬虫,爬取的数据如何使用,都可能产生潜在的法律问题。作为技术开发的小猿们,都应该思考这个问题。无论何种目的,网络爬虫都不能突破法律的底线,同时也有遵守一定的准则:
遵循robots.txt协议;
避免短时间高并发访问目标网站,避免干扰目标网站的正常运行;
不要抓取个人信息,比如手机通讯录等;
使用抓来的数据注意隐私保护,合法合规。
什么叫爬虫python_网络爬虫是什么?相关推荐
- 第一章 爬虫(认识网络爬虫)
第一章 认识网络爬虫 1.1 什么是网络爬虫 网络爬虫: 一种按规则,自动请求网站并提取网页数据的程序或脚本 网络爬虫分类(按照系统结构和技术划分): 1.通用网络爬虫 2.聚焦网络爬虫 3 ...
- 什么是网络爬虫,网络爬虫的职能是什么?
什么是网络爬虫,网络爬虫的职能是什么.网络蜘蛛即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页,从 ...
- python网络爬虫_Python网络爬虫——爬取视频网站源视频!
原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...
- java https 网络爬虫_Java 网络爬虫,就是这么的简单
这是 Java 网络爬虫系列文章的第一篇,如果你还不知道 Java 网络爬虫系列文章,请参看 学 Java 网络爬虫,需要哪些基础知识.第一篇是关于 Java 网络爬虫入门内容,在该篇中我们以采集虎扑 ...
- 豆瓣网络爬虫-java网络爬虫[验证码模拟登陆]详细介绍
目录 抓包介绍 解决验证码的思路 验证码地址拼接 爬虫实战 爬虫架构 model main 解析htmlparse 数据库操作程序db 近期,有人将本人博客,复制下来,直接上传到百度文库等平台. 本文 ...
- lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
LOFTER是网易出品的优质轻博客,灵感源于国外的tumblr,但比之更加文艺,更加本地化.本人非常喜欢LOFTER的UI设计,以及其中的优质用户和内容,似乎网易并不擅长推广,所以受众并不广泛.这都是 ...
- 详解网络爬虫:网络爬虫是干什么的?有哪些应用场景?
随着互联网信息的爆炸,网络爬虫渐渐为人所熟知.作为一种自动爬取网页信息的手段,很多人其实都不太清楚它在实际生活的巨大作用.那么,网络爬虫是干什么的?有哪些应用场景呢?简单来讲,搜索引擎.统计数据.出行 ...
- 什么是网络爬虫,网络爬虫有什么用?
简单地说,就是把网页所展示数据通过非人工的手段获取下来. 现在是大数据时代,数据分析是解决各行各业相关问题重要的依据.数据分析结果的准确性有很大一部分取决于数据量是否足够大.如果是几十条数据,我们当然 ...
- python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
0.前言 0.1 抓取网页 本文将举例说明抓取网页数据的三种方式:正则表达式.BeautifulSoup.lxml. 获取网页内容所用代码详情请参照Python网络爬虫-你的第一个爬虫.利用该代码获取 ...
最新文章
- R语言layout函数处理可视化图像布局实战
- observable_在Spring MVC流中使用rx-java Observable
- 【深度学习入门到精通系列】遗传算法 (Genetic Algorithm)
- 计算机io工作方式,QEMU/KVM和VirtIO工作模式
- 【高并发解决方案】6、数据库水平切分的实现原理解析
- 使用DBI(perl)实现文本文件的导入导出mysql
- 让你久等了!《码出高效:Java 开发手册》正式发布
- 刘朋:程序员如何练就领导力
- MySQL数据库 --基础
- 浅析openvn redirect-gateway组建公司专网的使用
- QTTabBar 使用教程:用浏览器的方式管理 Windows 资源管理器
- jeecg boot微服务架构图
- 潮汕“木塞”(“木虱”)概率计算
- java 输出大写字母与小写字母
- 手机mstsc远程工具_如何通过手机远程控制计算机
- 手机号归属地运营商查询-JAVA
- 小米首页二级菜单栏实现原理
- 基于PHP和mysql的简单学生成绩管理系统
- 当前安装包签名出现异常_关于部分华为手机安装游戏提示“签名异常”问题说明...
- win7 android 双系统平板 p1000,优派Windows7/Android双系统ViewPad 100