当前位置:   article > 正文

聚焦爬虫与通用爬虫_下载增量数据属不属于聚焦爬虫

下载增量数据属不属于聚焦爬虫
一、背景
1.1 为什么要学习爬虫?
1. 学习爬虫,可以私人订制一个搜索引擎。
2. 大数据时代,要进行数据分析,首先要有数据源。
3. 对于很多SEO从业者来说,从而可以更好地进行搜索引擎优化。
  • 1
  • 2
  • 3
1.2 什么是网络爬虫?

模拟客户端发送网络请求,接收请求对应的数据,按照一定的规则,自动抓取互联网信息的程序。

只要是客户端(浏览器)能做的的事情,原则上,爬虫都能做。意思就是,只要人类能够访问的网页,爬虫在具备铜等资源的情况下就一定可以抓取。

1.3 爬虫的数据来源
  1. 企业产生的用户数据:大型互联网公司有海量用户,所以他们积累数据有天然优势;有数据意识的中小型企业,也开始积累数据
  2. 数据管理咨询公司:通畅这样的公司通常有很庞大数据采集团队,一般通常市场调研和各行各业的公司进行合作、专家对话(数据积累多年,最终得出科研成果)
  3. 政府/机构提供的公开数据:政府通过各地政府统计上报的数据进行合并;机构都是权威的第三方网站
  4. 第三方数据平台购买数据:通过各个数据交易平台购买各行各业需要的数据,根据获取难度不同,价格也会不同。
  5. 爬虫爬取数据:如果市场上没有我们需要的数据,或者价格太高不愿意买,那就自己找人进行网上爬取
1.4 爬虫用途及爬下来的数据用途

爬虫主要用途数据采集

  • 爬虫用途:12306抢票、各种抢购、投票、刷票、短信轰炸、网络攻击、Web漏洞扫描器
  • 数据用途
    金融			金融新闻/数据			   制定投资策略,进行量化交易
    旅游			各类信息				优化出行策略
    电商			商品信息				比价系统
    游戏			游戏论坛				调整游戏运营
    银行			个人交易信息			   征信系统/贷款评级
    招聘			职位信息				岗位信息
    舆情			各大论坛				社会群体感知,舆论导向
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
二、通用爬虫

通用爬虫:搜索引擎用的爬虫系统。搜索引擎和web服务商提供的爬虫。
爬虫目标:尽可能的把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。
抓取流程:

  1. 首先选取一部分URL,把这些URL放到待爬取队列。
  2. 从队列取出URL,然后解析DNS得到主机IP,然后保存这个IP对应的服务器里下载HTML页面,保存到搜索引擎的本级服务器,之后把这个爬过的url放入已爬过的队列。
  3. 分析这些网页内容,找出网页里其他的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页面

四、为什么选择python做爬虫?可以做爬虫的语言有很多,如 PHP、Java、C/C++、python等等…
  • PHP 虽然是世界上最好的语言,天生不是做爬虫的,其是做web的。而且对多线程、异步支持不够好,并发处理能力不足。
    爬虫经常要修改大量代码是工具性程序,对速度和效率要求比较高。

  • Java 爬虫生态圈也很完善,是python爬虫的最大对手。但是Java语言本身很笨重,代码量很大 。重构成本比较高,任何修改都会导致代码的大量变动,爬虫经常要修改大量代码

  • C/C++ 运行效率和性能几乎最强,但学习成本高,代码成型比较慢。
    能用C/C++做爬虫,只能说能力的表现,但不是正确的选择。

  • python 语法优美、代码简洁、开发效率高、支持模块多、相关的HTTP请求模块和HTML解析模块非常丰富,
    还有强大的爬虫框架Scrapy, 以及成熟高效的scrapy-redis分布式策略。而且调用其他接口也非常方便(胶水语言)。

五、分布式策略:

Scrapy框架:高定制性、高性能(异步网络框架twisted),下载速度非常快,提供了数据存储、数据下载、提取规则等组件
scrapy-resdis, 在Scrapy的基础上以redis数据库(基于内存存储数据)为核心的组件。
让Scrapy框架支持分布式的功能,主要在redis里做请求指纹去重(指纹:独一无二特征),请求分配(然后放到队列分配),数据临时储存(再放到redis)

六、爬虫 反爬虫 反反爬虫之间的斗争:

其实爬虫做到最后,最头疼的不是复杂的页面,也不是晦涩数据,而是网站另一面的运维人员(发爬虫工程师)
反爬虫:User-Agent
反反爬虫: 代理 验证码 动态数据加载 数据加密
数据的价值,是否值得去费劲去做反爬虫
1.机器成本 + 人力成本 > 数据价值,就不反了, 一般的做到就封IP结束了
2.面子战争…
只要是真实用户可以浏览的网页数据,爬虫就一定能爬下来!
(因为爬虫模拟浏览器去访问网页数据)
爬虫和反爬虫之间的斗争,不断相互促进!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/495276
推荐阅读
相关标签
  

闽ICP备14008679号