关于网络爬虫的资料整合
关于通用爬虫的介绍
前言:
我们生活在一个充满数据的时代。
每天,来自商业、社会以及我们的日常生活所产生「图像、音频、视频、文本、定位信息」等各种各样的海量数据,注入到我们的万维网(WWW)、计算机和各种数据存储设备,其中万维网则是最大的信息载体。
数据的爆炸式增长、规模庞大和广泛可用的数据,使得我们真正进入到了“大数据(Big Data)时代”。我们急需功能强大的数据处理技术(Data Technology),从这些海量数据中发现有价值的信息。
网络爬虫(Web Crawler)技术,则成为了当下万维网数据(Web Data)收集中,最为高效灵活的解决方案。
什么是网络爬虫?
网络爬虫
获取数据方式主要有哪些?
1:企业产生的数据:百度搜索指数、腾讯公司业绩数据、阿里巴巴集团财务及运营数据、新浪微博微指数等....
大型互联网公司拥有海量用户,有天然的数据积累优势,还有一些有数据意识的中小型企业,也开始积累自己的数据。
2:数据平台购买数据:数据堂、国云数据市场、贵阳大数据交易所 等...
在各个数据交易平台上购买各行各业各种类型的数据,根据数据信息、获取难易程度的不同,价格也会有所不同。
3:政府/机构公开的数据:中华人民共和国国家统计局数据、中国人民银行调查统计、世界银行公开数据、联合国数据、纳斯达克、新浪财经美股实时行情 等...
通常都是各地征服统计上报,或者是行业内专业的网站、机构等提供。
4:数据管理咨询公司:麦肯锡、埃森哲、尼尔森、中国互联网络信息中心、艾瑞咨询 等...
通常这样的公司有很庞大的数据团队,一般通过市场调研、问卷调查、固定的样本检测、与各行各业的其他公司合作、专家对话来获取数据,并根据客户需求制定商业解决方案。
5:爬虫爬取网络数据:
如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,抓取网站上的数据。
通用爬虫:
通用网络爬虫 就是 捜索引擎抓取系统,目的是将互联网上的所有的网页下载到本地,形成一个互联网内容的镜像备份。
它决定着整个搜索引擎内容的丰富性和时效性,因此它的性能优劣直接影响着搜索引擎的效果。
通用搜索引擎(Search Engine)工作原理
第一步:抓取网页
搜索引擎网络爬虫的基本工作流程如下:
- 首先选取一部分的初始URL,将这些URL放入 待抓取URL队列 ;
- 取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进 已抓取URL队列 。
- 分析网页中包含的其他URL,并且将URL放入 待抓取URL队列,从而进入下一个循环....
PS : 搜索引擎如何获取一个新网站的URL:
- 新网站向搜索引擎主动提交网址:(如百度http://zhanzhang.baidu.com/linksubmit/url)
- 在其他网站上设置新网站外链(尽可能处于搜索引擎爬虫爬取范围)
- 搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。
网站的Robots协议
搜索引擎蜘蛛跟进URL抓取时,它需要遵从一些命令或文件的内容,如标注为nofollow的链接,或者是网站的Robots协议。
Robots协议(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,例如:
淘宝网:https://www.taobao.com/robots.txt
腾讯网: http://www.qq.com/robots.txt
第二步:数据存储
搜索引擎爬虫爬取到的网页,将存入原始页面数据库,页面和用户浏览器得到的HTML是完全一样的。
搜索引擎爬虫在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步:预处理
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。
- 提取文字
- 中文分词
- 消除噪音(比如版权声明文字、导航条、广告等……)
- 索引处理
- 特殊文件处理
除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。
但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。
第四步:提供检索服务,网站排名
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。
同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,这样Rank值高的网站在搜索结果中会排名较前,当然也可以直接使用 Money 购买搜索引擎网站排名,简单粗暴。
完整流程图:
但是,这些通用性搜索引擎也存在着一定的局限性:
- 通用搜索引擎所返回的结果都是网页,而大多情况下,网页里90%的内容对用户来说都是无用的。
- 不同领域、不同背景的用户往往具有不同的检索目的和需求,搜索引擎无法提供针对具体某个用户的搜索结果。
- 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎对这些文件无能为力,不能很好地发现和获取。
- 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询,无法准确理解用户的具体需求。
本文最终解释权归本文作者所有,未经允许不得私自转载
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
技术 | Python从零开始系列连载(二十九)
写爬虫防止被封的关键有以下几点: ●伪装请求报头(request header) ●减轻访问频率,速度 ●使用代理IP 一般第一点都能做到,第二点减轻访问频率就会大大增加任务时间,而使用代理就能在不增加任务时长避免被封的关键(实际情况却是任务时间因为代理的使用而增加的,但这里不细说,知道就好)。 下面我们从国内高匿代理IP获得代理IP数据。 import osimport timeimport requestsfrom bs4 import BeautifulSoup#num获取num页 国内高匿ip的网页中代理数据def fetch_proxy(num): #修改当前工作文件夹 os.chdir(r'/Users/apple888/PycharmProjects/proxy IP') api = 'http://www.xicidaili.com/nn/{}' header = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/' '537.36 (KHT...
- 下一篇
OSS JAVA SDK
环境准备 使用 Java 1.8 及以上版本。 查看版本执行命令java -version查看Java版本。 已知JAVA SDK 无法获取 OSS 返回的 http header 和 http code,都被 SDK 封装;判断上传成功的标准是没有异常抛出,并且返回的 requestID 不为空; 下载SDK 直接通过 GitHub 下载 安装SDK,在Maven项目中加入依赖项(推荐方式) <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </depende
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题