【00】爬虫概念介绍

一、“大数据时代”,数据获取的方式:

**1、企业生产的用户数据:**大型互联网公司有海量用户,所以他们积累数据有天然优势;有数据意识的中小型企业,也开始积累数据。

**2、 数据管理咨询公司:**通常这样的公司有很庞大的数据采集团队,一般会通过市场调研、问卷调查、固定的样本检测和各行各业公司进行合作、专家对话(数据积累很多年,最后得出科研结果)来采集数据

**3、政府/机构提供的公开数据:**通过各地政府统计上报数据进行合并;机构都是权威的第三方网站。

**4、第三方数据平台购买数据:**通过各个数据交易平台来购买各行各业所需要的数据,根据获取难度不同,价格有所不同。

**5、 爬虫爬取数据:**如果市场上没有我们需要的数据,或者价格太高不愿意买,那么就可以有一个爬虫工程师,定向从网络中获取数据。

二、什么是爬虫?

爬虫:抓取网页数据的程序

三、爬虫怎么爬取网页数据

1、网页三大特征:

**(1)**每个网页都有自己的URL(统一资源定位符)来进行定位

**(2)**网页都使用HTML(超文本标记语言)来描述网页信息

**(3)**网页都使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据

2、爬虫的设计思路

**(1)**首先确定需要爬取的网页URL地址
**(2)**通过HTTP/HTTPS协议来获取对应的HTML页面
**(3)**提取HTML页面里有用的数据:
a. 如果是需要的数据,就保存起来。
b. 如果是页面里的其他URL,那就继续执行第二步

四、为什么选择Python做爬虫?

可以做爬虫的语言有很多,如PHP、Java、C/C++、Python等等

** - PHP:**虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程、异步支持不够好,并发处理能力不够。但爬虫是工具性程序,对速度和效率要求比较高

** - Java:**网络爬虫生态圈很完善,是Python爬虫最大的对手。但是Java语言本身很笨重,代码量很大,重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。

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

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

五、学习思路

1、 Python的基本语法知识

2、 如何抓取HTML页面:
HTTP请求的处理,urllib、urllib2、requests,处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件

3、解析服务器响应的内容:
re、xpath、BeautifulSoup4(bs4)、jsonpath、pyquery等
使用某种描述性语言来给我们需要提取的数据定义一个匹配规则,符合这个规则的数据就会被匹配。

4、如何采集动态HTML、验证码的处理:
通用的动态页面采集:
Selenium+PhantomJS(无界面):模拟真实浏览器加载js、ajax等非静态页面数据
Tesseract:机器学习库,机器图像识别系统,可以用于处理简单验证码,复杂验证码可以通过手动输入,或者专门的打码平台

5、Scrapy框架:(Scrapy,Pyspider)
高定制性高性能(异步网络框架twisted),所以数据下载速度非常快,提供了数据存储、数据下载、提取规则等组件。

6、分布式策略:
scrapu-radis:在Scrapy基础上,以Redis数据库为核心的一套组件,让Scrapy框架支持分布式的功能,主要在Redis里做请求指纹去重、请求分配、数据临时存储。

7、爬虫-反爬虫-反反爬虫之间的斗争:
爬虫最后,最头疼的不是复杂的页面、晦涩的数据,而是网页对面的反爬虫工程师。
User-Agent、代理、验证码、动态数据加载、加密数据。
数据价值是否值得去费劲做反爬虫:机器成本+人力成本>数据价值,不反爬虫,一般封IP就结束了

爬虫与反爬虫之间的斗争,最后一定是爬虫获胜! 只要是真实用户可以浏览的网页数据,爬虫一定能爬下来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值