1 爬虫基本概念
目录
一、什么是网络爬虫?
二、爬虫分类
三、如何编写爬虫
四、爬虫必备技能
一、什么是网络爬虫?
网络爬虫(也被称为网页蜘蛛、网络机器人,在相关的社区中常见的是网页追逐者),是一种按照特定规则运作、自动提取万维网数据的程序或脚本。掌握了这些技术手段,则能够实现目标。
1、数据采集
Python爬虫程序被用来收集数据。这种方法也被认为是最直接且最常用的手段之一。因为爬虫程序作为一个程序本身具备快速运行的特点,并不会因重复性工作而感到疲倦。由此可见,在获取大量数据时使用爬虫技术会变得更加便捷。
2、调研
例如调研一家电商公司时
3、刷流量和秒杀
利用Python爬虫实现功能的主要途径是其自带的流量监控功能模块。当某个Python爬虫访问某网站时,若该爬虫设计得巧妙且隐蔽性高,则会被误判为正常访问。最终导致的结果是该网页流量被意外地增加了。
二、爬虫分类
根据系统结构和实现技术的主要依据, 网络爬虫主要包含三种类型: 基于通用架构的网络爬虫、以特定主题为中心的网络爬虫以及基于增量式算法的网络爬虫。
1.通用网络爬虫
通用网络爬虫(Scalable Web Crawler)也被称为广泛应用于网络的高效抓取程序(Advanced Network Scraper),其主要功能是从初始种子URL开始逐步扩展至整个Web空间,并专注于收集数据(Data Collection)。其中包含的主要应用领域包括门户网站、搜索引擎及大型Web服务提供商的数据采集工作。例如百度、360、谷歌及必应等搜索引擎及相关服务提供商
2.聚焦爬虫
以特定主题为导向的网络爬虫(Focused Crawler),也被称为基于主题的网络爬虫(Topical Crawler),其核心在于有针对性地抓取与预先设定好的主题相关联的网页内容。这也是我们进行网络爬虫活动时必须关注的重点领域。
3.增量式爬虫
增量式网络爬虫(Incremental Web Crawler)是一种采用增量式更新策略的抓取器系统,在抓取过程中不仅会更新已下载页面的内容,并且还会仅抓取新增或发生变更的网页内容以避免重复抓取已存在的信息内容;该系统通过这种方式能够确保获取到尽可能新鲜的页面信息
三、如何编写爬虫
1.获取页面代码
urllib ---> requests
aiohttp / httpx
2.解析页面提取想要的信息
正则表达式解析 - re
XPath解析 - lxml
CSS选择器解析 - pyquery / beautifulsoup
3.存储(持久化,mysql、mongodb)/ 压缩 / 签名
4.数据清洗,归一化 ---> 数据分析 ---> 生成统计图表/报表
四、爬虫必备技能
1、python基础语法
2、如何抓取页面
使用到的python库:urllib.reqeust urllib.parse requests
3、解析内容
正则表达式、xpath、bs4、jsonpath
4、采集动态html
selenium
5、scrapy
高性能异步网络框架
6、分布式爬虫
scrapy-redis组件,在Scrapy基础上增添了一套功能模块,并实现了高效的存储与检索功能。
