网络爬虫
- 什么是网络爬虫
通俗理解:爬虫是一个模拟人类请求网站行为的程序。
功能:可以自动请求网页,并将数据抓取下来,然后使用一定的规则提取有价值的数据
专业介绍可参考百度百科
通用爬虫和聚焦爬虫
通用爬虫:通用爬虫是搜索引擎抓取系统(百度、谷歌、搜狗等)的重要组成部分。主要是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
聚焦爬虫:是面向特定需求的一种网络爬虫程序,他与通用爬虫的区别在于:聚焦爬虫在实施网页抓取的时候会对内容进行筛选和处理,尽量只抓取与需求相关的网页信息。
为什么用Python写爬虫程序
- PHP:PHP是世界上最好的语言,但他天生不是做这个的,而且对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。
- Java:生态圈很完善,是Python爬虫最大的竞争对手。但是java语言本身很笨重,代码量很大。重构成本比较高,任何修改会导致代码大量改动。爬虫要经常修改采集代码。
- C/C++:运行效率是无敌的,但是学习和开发成本高,写个小爬虫程序可能要大半天的时间。
- Python:语法优美,代码简洁,开发效率高,支持的模块多。相关的HTTP请求模块和HTML解释模块非常丰富。还有Scrapy和Scrapy-Redis框架让我们开发爬虫变得异常简单。
基本流程
- 准备工作
通过浏览器查看分析目标网页,学习编程基础规范 - 获取数据
通过HTTP库向目标站点发起请求,请求可以包含额外的header等信息,如果服务器能正常响应,会得到一个response,便是要获取的页面内容 - 解析内容
得到的内容可能是HTML、json等格式,可以用页面解析库、正则表达式等进行解析 - 保存数据
保存形式多样,可以存为文本,也可以存到数据库,或者保存特定格式的文件