(PY爬虫03)爬虫初识
Posted bignote
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(PY爬虫03)爬虫初识相关的知识,希望对你有一定的参考价值。
原本的想法是这样的:博客整理知识学习的同时,也记录点心情...集中式学习就没这么多好记录的了! 要学习一门技术,首先要简单认识一下爬虫!其实可以参考爬虫第一章! 整体上介绍该技术包含技能,具体能做什么.这里就更详细了
重点在这里
为什么使用爬虫
首先请问: 都说现在是大数据时代.
,那数据从哪来?
企业产生的用户数据:
大型互联网公司有海量用户,所以他们积累数据有天然的优势。有数据意识的中小型企业,也开始积累的数据。
百度指数
阿里指数
TBI腾讯浏览指数
新浪微博指数政府/机构公开的数据:
政府通过各地政府统计上报的数据进行合并;机构都是权威的第三方网站。
中华人民共和国统计局数据
世界银行公开数据
联合国数据
纳斯达克数据平台购买的数据:
通过各个数据交易平台来购买各行各业需要的数据,根据获取难度不同,价格也会不同。
数据堂
聚合数据
国云数据市场
贵阳大数据交易所数据管理咨询公司:
常这样的公司有很庞大的数据采集团队,一般会通过市场调研、问卷调查、固定的样本检测,和各行各业的公司进行合作、专家对话(数据积累很多年了,最后得出科研结果)来采集数据。
麦肯锡
埃森哲
艾瑞咨询爬取网络数据:
如果需要市场上没有,或者不愿意花钱购买,那么可以招聘爬虫工程师自己丰衣足食! 拉勾网爬虫职位
什么是爬虫
爬虫:就是抓取网页数据的程序。
爬虫怎么抓取网页数据?
网页三大特征
- 网页都有自己唯一的URL(统一资源定位符,俗称网址) 来进行定位
- 网页使用的都是html(超文本标记语言)来描述网页信息,展示形式统一!
- 网页都使用HTTP/HTTPS(超文本传输协议) 协议来传输HTML数据 , 数据传输协议统一!
爬虫的设计思路
- 首先确定需要爬取的URL地址
- 通过HTTP.HTTPs协议来获取对应的页面
- 提取HTML页面有用的数据:
- 如果需要的数据,就保存起来
- 如果是页面包含其他URL, 就继续执行第二步!
为什么选择Python
这里感觉是废话! 都会说:赚钱就学呗! 其实了解其他语言的特性也是一种资历!!! 都没接触过哪敢吹!
可以做爬虫的语言有很多,如 php、Java、C/C++、Python等等...
- PHP 为做网站而生,而且对多线程、异步支持不够好,并发处理能力很弱。 爬虫是工具性程序,对速度和效率要求比较高。
- Java 的网络爬虫生态圈也很完善,是Python爬虫最大的对手。但是Java语言本身很笨重,代码量很大,难度高。重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。
- C/C++ 运行效率和性能几乎最强,但是学习成本很高,代码成型比较慢。 能用C/C++做爬虫,只能说是能力的表现,但是不是正确的选择。
- Python 语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。 还有强大的爬虫Scrapy,以及成熟高效的 scrapy-redis分布式策略。 而且,调用其他接口也非常方便(胶水语言)
关于爬虫需要掌握什么?
- 基础语法(这个必须已经搞定)
- 如何抓取HTML页面:
- HTTP 请求处理, urllib, urllib2, requests
- 处理后的请求可以模拟浏览器发送请求,后去服务器响应的文件
- 数据提取
- 解析服务器响应的内容, re,xpath,BeautifulSoup4(bs4),jsonpath,puquery等
- 使用某个匹配规则提取数据,符合这个规则的数据就会被匹配!
- 如何采集动态HTML,验证码的处理
- 通用的动态页面采集:
Selenium + PhantoJS(无界面)
: 模拟真实浏览器加载js,ajax等非静态页面数据 - Tesseract :机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的验证码可以通过手动输入/专门的打码平台
- 通用的动态页面采集:
5.Scrapy
框架(Scrapy,Pysplider)
高定制性高性能(异步网络框架twisted),所以数据下载速度非常快, 提供了数据存储、数据下载、提取规则等组件。
分布式策略
scrapy-reids
scrapy-redis,在Scrapy的基础上添加了一套以 Redis 数据库为核心的组件。让Scrapy框架支持分布式的功能,主要在Redis里做 请求指纹去重、请求分配、数据临时存储。- 爬虫- 反爬虫- 反反爬虫 之间的斗争:
- 其实爬虫做到最后,最头疼的不是复杂的页面,也是晦涩的数据,而是网站另一边的反爬虫人员。
User-Agent、代理、验证码、动态数据加载、加密数据。
数据价值,是否值的去费劲做反爬虫。
- 机器成本 + 人力成本 > 数据价值,就不反了,一般做到封IP就结束了。
- 面子的战争....
爬虫和反爬虫之间的斗争,最后一定是爬虫获胜!为什么?只要是真实用户可以浏览的网页数据,爬虫就一定能爬下来!
以上是关于(PY爬虫03)爬虫初识的主要内容,如果未能解决你的问题,请参考以下文章