爬虫基础

一,大数据时代,数据获取的方式
企业产生的用户数据:大型互联网公司有海量用户,所以积累他们有数据天然优势
有数据意识的中小型企业,也开始积累数据

数据管理咨询公司:通畅这样的公司通常有很庞大数据采集团队,一般通常市场调研和各行各业的公司进行合作,专家对话(数据积累多年,最终得出科研成果)

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

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

爬虫爬取数据:如果市场上没有我们需要的数据,或者价格太高不愿意买,那就自己找人进行网上爬取

二,什么是爬虫
爬虫:就是抓取网页数据的程序

三,爬虫怎么抓取网页数据:
网页三大特征
每个网页都有自己唯一的URL(统一资源定位符)来进行定位
网页都使用HTML(超文本标记语言)来描述页面信息
网页都使用HTTP / HTTPS(超文本传输​​协议)协议传输HTML数据

爬虫的设计思路
首先确定需要爬取的URL地址

通过HTTP / HTTPS协议获取对应的HTML页面
提取HTML页面的数据:
a。如果是需要数据,就保存起来
b。如果是页面里的其他URL,那就继续执行第二步。
四,为什么选择蟒蛇做爬虫?
可以做爬虫的语言有很多,如PHP,Java,C / C ++,python等等…

PHP虽然是世界上最好的语言,天生不是做爬虫的,但是做web的。而且对多线程,异步支持不够好,并发处理能力
不足。爬虫经常要修改大量代码是工具性程序,对速度和效率要求比较高。

Java爬虫经常要修改大量代码

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

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

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

六,解析服务器响应的内容标题
文本解析正则 re

BeautifulSoup4(bs4)

jsonpath
1
2
3
4
5
6
使用某个描述性一样来给我们需要提取的的数据定义一个匹配规则,符合这个规则的数据就会被匹配。

七如何采集动态HTML,验证码的处理
通用的动态页面采集:Selenium(自动化测试工具)+ PhantomJS(无界面浏览器模拟真实浏览器加js,非静态页面数据)

Tesseract:机器学习库(识别文本),机器图像识别系统,可以识别简单的验证码,复杂的验证码可以通过手动输入

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

,分布式策略:scrapy-resdis,在Scrapy的基础上以redis数据库(基于内存存储数据)为核心的组件。

让Scrapy框架支持分布式的功能,主要在redis里做请求指纹去重(指纹:独一无二特征),请求分配(然后放到队列分配),数据临时储存(再放到redis的)

第十爬虫反爬虫反反爬虫之间的斗争:
其实爬虫做到最后,最头疼的不是复杂的页面,也不是晦涩数据,而是网站另一面的运维人员(发爬虫工程师)

反爬虫:User-Agent
反对爬虫:代理验证码动态数据加载数据加密

数据的价值,是否值得去费劲去做反爬虫
1.机器成本+人力成本>数据价值,就不反了,一般的做到就封IP结束了
2.面子战争…

只要是真实用户可以浏览的网页数据,爬虫就一定能爬下来!
(因为爬虫模拟浏览器去访问网页数据)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值