数据可视化:从小白到数据工程师的成长之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 搜索数据

在网络上搜索数据时需要使用浏览器、搜索引擎和搜索指令。例如,在Internet Explorer浏览器中打开百度搜索引擎,输入搜索指令“主题教育 filetype:pdf”,目的是获取与“主题教育”相关PDF格式的文件。

2.2.1 搜索引擎

使用搜索引擎(Search Engine)获取数据是数据获取的最基本、最常用的方法。搜索引擎泛指在网络上以一定的策略搜集数据,对数据进行组织和处理,并为用户提供数据检索服务的工具或系统。搜索引擎被业界公认为继广告、网络游戏、无线增值之后互联网的“第四桶金”,因此很多公司开展了搜索引擎业务。搜索引擎的排名经常变化(很多公司公布的数据间隔是一周),常见的搜索引擎如下,本节涉及的搜索引擎与前后顺序无关。

百度搜索[3]是全球最大的中文搜索引擎,2000年1月创立于北京中关村。

谷歌搜索[4]是互联网公司谷歌的主要产品,也是世界上最大的搜索引擎之一,拥有网站、图像、新闻组和目录服务四个功能模块,于1999年下半年推出。

搜狗[5]是搜狐公司的旗下子公司,于2004年8月推出。

360[6](曾用名“好搜”)是奇虎360公司推出的独立搜索品牌,上线时间是2012年8月。

有道搜索[7]是网易旗下搜索引擎,不仅提供网页、图片、热闻、视频、音乐、博客等传统数据搜索服务,还推出了词典搜索等,于2007年12月推出。

必应搜索[8]是微软公司于2009年5月推出的全新搜索品牌,为用户提供网页、图片、视频、词典、翻译、资讯、地图等搜索服务。

中国搜索[9]由盘古搜索和即刻搜索合并而来,于2013年10月开始筹建,2014年3月上线测试。中国搜索由中央七大新闻媒体——人民日报、新华社、中央电视台、光明日报、经济日报、中国日报和中新社联手创办。中国搜索拥有的政府资源是其他搜索引擎无法比拟的。

搜库[10]是优酷旗下的专业视频搜索引擎,于2010年4月上线推出,提供优酷站内视频和全网视频的专业搜索。

爱奇艺搜索[11]是国内最大的视频搜索引擎之一,涵盖全网海量视频资源的搜索。

淘宝搜索[12]是阿里巴巴旗下的搜索引擎,主要针对旗下的淘宝网进行站内搜索,为用户提供C2C的购物搜索结果。

搜索引擎的工作过程分为如下三个步骤。

首先是抓取网页。每个独立的搜索引擎都有自己的网页抓取程序爬虫(spider)。爬虫顺着网页中的超链接,从一个网站爬到另一个网站,通过超链接分析,连续访问、抓取更多网页。被抓取的网页被称为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发就能搜集到绝大多数的网页。

其次是处理网页。搜索引擎抓到网页后要做大量的预处理工作,才能提供检索服务。其中最重要的是提取关键词,建立索引库和索引,以及去除重复网页、分词(中文)、判断网页类型、分析超链接、计算网页的重要度和丰富度等。

最后是提供检索服务。用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配此关键词的网页。为了用户便于判断,除了网页标题和URL,还会提供一段来自网页的摘要和其他数据。

搜索引擎的种类虽然多种多样,但根据搜索方式的不同,主要分为全文搜索、目录索引和元搜索三种。全文搜索是在互联网上爬取各网站的数据来建立自己的数据库,并向用户提供查询服务,如谷歌搜索、百度搜索等。目录索引是按目录分类的网站链接列表。元搜索引擎是在接收用户查询请求时,同时在其他多个引擎上进行搜索,并将全部结果返回给用户。

2.2.2 浏览器

浏览器一种软件,功能是以用户可理解的方式显示Web页面,并方便用户与Web页面的交互。蒂姆·伯纳斯·李于1990年发明了第一个网页浏览器World Wide Web,后改名为Nexus。随着网络的普及,出现了功能各异的浏览器,常见的浏览器包括Internet Explorer、Opera、Firefox、苹果Safari、谷歌chrome、360浏览器、QQ浏览器和百度浏览器等。

Acid3[13]是由网页标准计划小组(Web Standards Project,WaSP)设计的测试网页,于2008年3月3日正式发布,是目前Web标准基准测试中最严格的。其测试焦点集中在ECMAScript、DOM Level3、Media Queries和data:URL。浏览器开启此测试网页后,页面会不断加载功能、直接给予分数,满分为100分。还有一些浏览器专项测试网站,包括是否支持HTML5的测试[14]、CSS3测试[15]、速度测试[16]和JavaScript基准测试[17]等。

2.2.3 搜索指令

搜索指令的使用可以快速、精准地搜索到数据。浏览器不同对搜索指令的支持也不同,基本的搜索指令包含以下内容。本节以百度搜索引擎为例讲解常用的搜索指令。

1.intitle和allintitle

intitle指令将搜索范围限制在网页的标题。allintitle指令搜索的所有关键字都必须在网页的标题中。例如,搜索“intitle:改革开放40周年”,约有486000个结果,见图2.1,“allintitle:改革开放40周年”共搜索到约724个结果,见图2.2。

图2.1 使用intitle搜索指令

图2.2 使用allintitle搜索指令

2.inurl和allinurl

inurl指令将搜索结果限制在特定URL或者网站页面上。allinurl指令搜索的所有关键字都限制在URL或网站页面上。例如,仅在政府网站中搜索“改革开放40周年”,即“inurl:gov.cn 改革开放40周年”,则约有104000个结果,见图2.3;仅在URL“news.ifeng.com/world”中搜索“改革开放40周年”,即“allinurl:news.ifeng.com/world 改革开放40周年”,则约有95个结果,见图2.4。

图2.3 使用inurl搜索指令

图2.4 使用allinurl搜索指令

3.site

site指令将搜索限制在站点或者顶层域名上。例如,仅在特定网站“www.ifeng.com”搜索“改革开放40周年”,则搜索指令是“改革开放40周年 site:www.ifeng.com”,见图2.5。注意,在“site”指令后的站点或顶层域名前不能加“http://”,如搜索指令“改革开放40周年 site:http://www.ifeng.com”无法正确执行,见图2.6。

4.filetype

filetype指令将搜索限制为某类特定后缀或者文件名的扩展名。例如,仅搜索“ppt”扩展名的文档,则搜索指令是“改革开放40周年 filetype:ppt”,见图2.7,搜索结果均为扩展名.ppt的PowerPoint文件。

图2.5 site搜索指令正确用法

图2.6 site搜索指令错误用法

图2.7 使用filetype指令

5.完整匹配" "

完整匹配搜索是搜索结果包含双引号中出现的所有词,顺序也必须匹配。例如,搜索“改革开放40周年”时加双引号,结果见图2.8,对比不使用完整匹配搜索结果,见图2.9。使用完整匹配的搜索结果更精准。大数据时代的当下,用户往往没有足够的时间查看数以万条甚至更多的搜索结果,用户更喜欢精准搜索的结果。

图2.8 不使用完整匹配搜索指令

图2.9 使用完整匹配搜索指令

百度搜索工具以图形化界面完成搜索指令。“时间不限”可以设置搜索时间条件,图2.10设置的时间是从“2018-10-24至2018-12-24”。“所有网页和文件”可以设置搜索到的文档类型,如“PDF”文件格式。“站点内搜索”可以限制在某个站点或者顶层域名内搜索,如“wenku.baidu.com”。

图2.10 使用百度搜索工具

完整的指令可以参考谷歌帮助[18],也可以使用百度高级搜索[19],见图2.11。百度高级搜索页面可以限定包括或不包括的关键字、限定搜索结果显示的条数、限定搜索时间、限定搜索的网页语言、限定文档格式、限定关键词位置和限定搜索位置等。实际上,百度高级搜索集成了常见的搜索指令,用户不需记住复杂的搜索指令就可在图形化搜索界面完成复杂的搜索任务。

图2.11 百度高级搜索

网页快照(Snapshot)的使用可以提高搜索效率,因为网页快照存储在搜索引擎服务器中,所以查看网页快照比直接访问Web页面要快。在网页快照中,搜索的关键词高亮显示,方便用户单击关键词直接找到关键词出现位置,见图2.12和图2.13。而且,当搜索的Web页面被删除或链接失效时,可以使用网页快照查看这个页面的原始内容。

图2.12 在百度中搜索“数据挖掘”

图2.13 网络快照中关键词“数据挖掘”高亮显示