要点
- 介绍网络爬虫的基础部分
- 学习网络爬虫的原因
- 网络爬虫带来的价值
- 网络爬虫是否合法
- 网络爬虫的基本议题和框架
1.1 为什么要学网络爬虫
1.1.1 网络爬虫能带来什么好处
网络爬虫主要是解决无法自动化和无法实时获取两个痛点。
对于公开数据的应用价值,我们可以用KYC框架进行简单描述性分析:
- Know your company(了解你的公司)
- Know your competitor(了解你的竞争对手)
- Know your customer(了解你的客户)
在营销领域,通过机器学习和统计算法分析,可以帮助企业做好4P(Product、Place、Price、Promotion)
1.1.2 能从网络上爬取什么数据
平时浏览网站时所有能看见的数据。
1.1.3 应不应该学爬虫
1.2 网络爬虫是否合法
1.2.1 Robots协议
Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些网页可以抓取,哪些网页不能抓取。样例为淘宝网的robots.txt
:https://www.taobao.com/robots.txt
User-agent: Baiduspider # 百度爬虫引擎
Allow: /article
Allow: /oshtml
Allow: /ershou
Disallow: /product/ # 禁止访问/product/12345.com
Disallow: / # 禁止访问除Allow规定页面外的其他所有页面
User-Agent: Googlebot # 谷歌爬虫引擎
Allow: /article
Allow: /oshtml
Allow: /product
Allow: /spu
Allow: /dianpu
Allow: /oversea
Allow: /list
Allow: /ershou
Disallow: /
可以看出,Allow
的为允许robot访问的,Disallow
是不允许爬虫访问的,其中最后一条Disallow: /
规定除了Allow
规定页面外其他所有页面禁止访问。
当爬取网站数据时,无论是否仅供个人使用,都应该遵循Robots协议
1.2.2 网络爬虫的约束
由于过快或频密的网络怕从都会对服务器产生巨大压力,所有网站有可能会封锁你的IP。
1.3 网络爬虫的基本议题
首先提问两个宏观上的问题:
- Python爬虫的流程是怎么样的?
- 三个流程的技术实现是什么?
1.3.1 Python爬虫的流程
- 获取网页:给一个网址发送请求,该网址会返回整个网页的数据
- 解析网页(提取数据):从整个网页的数据中提取想要的数据
- 存储数据:将数据存储下来
1.3.2 三个流程的技术实现
1. 获取网页
基础技术:request
、urllib
和selenium
(模拟浏览器)
进阶技术:多进程多线程抓取、登陆抓取、突破IP封禁和服务器抓取
2. 解析网页
基础技术:re
正则表达式、BeautifulSoup
和lxml
进阶技术:解决中文乱码
3. 存储数据
基础技术:存入txt文件、csv文件
进阶技术:存入Mysql或MongoDB数据库
网友评论