爬虫概述

1.爬虫概述

1.1爬虫的概念

爬虫,又称网页蜘蛛或网络机器人
爬虫是模拟人操作客户端(浏览器,app) 向服务器发起网络请求  抓取数据的自动化程序或脚本(****)
Pyinstaller
#说明
    1.模拟:用爬虫程序伪装出人的行为,避免被服务器识别为爬虫程序
    2.客户端:浏览器,app都可以实现人与服务器之间的交互行为,应用客户端从服务器获取数据
    3.自动化:数据量较小时可以人工获取数据,但往往在公司中爬取的数据在百万条,千万条级别的,所以自动化获取数据。

1.2 爬虫语言

# 爬虫语言: php c/c++ java python golang nodejs
# 对比
	php: 并发能力差,对多进程和多线程支持不好,数据量较大时爬虫效率较低
    c/c++: 语言效率高,但学习成本高,对程序员的技术能力要求较高,所以目前还停留在研究层面,市场需求量很小
    java: python的主要竞争对手,由于Java语言的特点,代码臃肿,代码量大,维护成本重构成本高,开发效率低,但目前市场上岗位需求比较旺盛。
    python: 语法简单,学习成本低,对新手比较友好,python语言良好的生态,大量库和框架的支持是python爬虫目前处于爬虫圈的主导地位。

1.3爬虫分类

(1)通用爬虫

(2)聚焦爬虫
1.通用爬虫:搜索引擎
# 实例:百度, 搜狗, Google的搜索引擎
# 功能:访问网页 -> 爬取数据 -> 数据处理 -> 提供检索服务
# 工作流
	1.给定一个起始的url,存于爬取队列中
    2.爬虫程序从队列中取出url,爬取数据
    3.解析爬虫数据,获取网页的所有url,需要的数据,放入爬取队列
    4.重复第二部
# 是搜索引擎获取网站链接
	1.主动将url提交给搜索引擎(https://ziyuan.baidu.com/linksubmit/url)
    2.在其它热门网站设置友情链接
    3.百度和DNS服务商合作,收录新网站
 # 网站排名(SEO)
	1.根据PageRank值进行排名(流量,点击率)
    2.百度竞价排名,钱多就考前
    
 # 缺点
	1.爬取的内容多数无用
    2.无法精准获取数据
 # 协议:robots --> 约定哪些内容允许爬虫爬取
	1.无需遵循,该协议适用于通用爬虫也使用于聚焦爬虫,而我们写的是聚焦爬虫
    2.查看方法:网站url/robots.txt, 如https://www.baidu.com/robots.txt
2.聚焦爬虫
# 概念
	聚焦爬虫指针对某一领域根据特定要求实现的爬虫程序,抓取需要的数据(垂直领域爬取)
# 设计思路
	1.确定爬取的url,模拟浏览器向服务器发送请求获取相应数据
    2.进行数据解析
    3.将目标数据持久化到本地
原文地址:https://www.cnblogs.com/hr20-04-19/p/13403234.html