为何要学习爬虫? 学习爬虫,能够私人订制一个搜索引擎。 大数据时代,要进行数据分析,首先要有数据源。 对于不少SEO从业者来讲,从而能够更好地进行搜索引擎优化。 什么是网络爬虫? 模拟客户端发送网络请求,接收请求对应的数据,按照必定的规则,自动抓取互联网信息的程序。 只要是客户端(浏览器)能作的的事情,原则上,爬虫都能作。意思就是,只要人类可以访问的网页,爬虫在具有铜等资源的状况下就必定能够抓取。 爬虫的用途 主要用:途数据采集 其余用途:12306抢票、各类抢购、投票、刷票、短信轰炸、网络攻击、Web漏洞扫描器 爬虫数据的用途 1.金融 金融新闻/数据 制定投资策略,进行量化交易 2.旅游 各种信息 优化出行策略 3.电商 商品信息 比价系统 4.游戏 游戏论坛 调整游戏运营 5.银行 我的交易信息 征信系统/贷款评级 6.招聘 职位信息 岗位信息 7.舆情 各大论坛 社会群体感知,舆论导向 通用爬虫 通用爬虫:搜索引擎用的爬虫系统。搜索引擎和web服务商提供的爬虫。 目标: 就是尽量的;把互联网上的全部的网页下载下来,放到本地服务器里造成备分,在对这些网页作相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。 抓取流程: 首先选取一部分URL,把这些URL放到待爬取队列。 从队列取出URL,而后解析DNS获得主机IP,而后保存这个IP对应的服务器里下载HTML页面,保存到搜索引擎的本级服务器,以后把这个爬过的url放入已爬过的队列。 分析这些网页内容,找出网页里其余的URL连接,继续执行第二步,知道爬取结束 搜索引擎如何获取一个新网站的URL: a)主动向搜索引擎提交网站 B)在其余网站里设置外联 C)索引擎会和DNS服务商服务商进行合做,能够快速收录新的网站 DNS把域名解析成IP的一种技术。 通用爬虫并非万物皆可爬取,他也要遵循规则: Robots协议:协议会指明通用爬虫能够爬取网页的权限(告诉搜索引擎那些能够抓取,那些不能够抓取) Robots.txt 并非全部的爬虫都遵照,通常只有大型的搜索引擎爬虫才会遵照 存在位置:robots.txt文件应该放置在网站根目录下 例如:https://www.taobao.com/robots.txt 通用爬虫工做流程: 爬取网页 存储数据 内容处理 提供检索/排名服务 搜索引擎排名: 1.PageRank值:根据网站的流量(点击量/浏览量/人气)统计,流量越高,网站排名越靠前。 2.竞价排名:谁给的钱多,谁排名就高。 通用爬虫的缺点: 1.只能提供和文本相关的内容(HTML、Word、PDF)等等,可是不能提供多媒体文件(音乐、图片、视频)和二进制文件(程序、脚本) 2.提供的结果千篇一概,不等针对不一样背景领域的人提供不一样的搜索结果 3.不能提供人类语义上的检索 通用搜索引擎的局限性 1.通用搜索引擎所返回的网页里90%的内容无用。 2.中文搜索引擎天然语言检索理解困难 3.信息占有量和覆盖率存在局限。 4.搜索引擎最主要的仍是以关键字搜索为主,对于图片、数据库、音频、视频多媒体的内容通用搜索引擎无能为力。 5.搜索引擎的社区化和个性化很差,大多数搜索引擎没有考虑人的地域,性别,年龄的差异 6.搜索引擎抓取动态网页效果很差 解决通用爬虫的缺点,聚焦爬虫出现了。 聚焦爬虫 聚焦爬虫:爬虫程序员写的针对某种内容爬虫。 面向主题爬虫、面向需求爬虫:会针对某种特定的能容去爬取信息,并且保证内容需求尽量相关。 1.积累式爬虫:从开始到结束,不断爬取,过程当中会进行重复操做。 2.增量式爬虫:已下载网页采起增量式更新和只爬取新产生的或者已经发生变化网页爬虫 3.Deep web爬虫:不能经过静态连接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能得到的web页面