⼤数据采集的流程是什么,主要分为哪⼏步?
⼀、什么是爬⾍,爬⾍能做什么
爬⾍,即⽹络爬⾍,⼤家可以理解为在⽹络上爬⾏的⼀直蜘蛛,互联⽹就⽐作⼀张⼤⽹,⽽爬⾍便是在这张⽹上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。⽐如它在抓取⼀个⽹页,在这个⽹中他发现了⼀条道路,其实就是指向⽹页的超链接,那么它就可以爬到另⼀张⽹上来获取数据。
爬⾍可以抓取的某个⽹站或者某个应⽤的内容,提取有⽤的价值。也可以模拟⽤户在浏览器或者App应⽤上的操作,实现⾃动化的程序。以下⾏为都可以⽤爬⾍实现:
咨询报告(咨询服务⾏业)
抢票神器
投票神器
预测(股市预测、票房预测)显示不了隐藏文件
国民情感分析
社交关系⽹络
政府部门舆情监控
⼆、浏览⽹页的过程与URL
1、⽤户浏览⽹页过程
因此,⽤户看到的⽹页实质是由HTML代码构成的,爬⾍爬来的便是这些内容,通过分析和过滤这些HTML代码,实现对图⽚、⽂字等资源的获取。
3.URL的含义
URL,即统⼀资源定位符,也就是我们说的⽹址,统⼀资源定位符是对可以从互联⽹上得到的资源的位置和访问⽅法的⼀种简洁的表⽰,是互联⽹上标准资源的地址。互联⽹上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理它。
URL的格式由三部分组成:
①第⼀部分是协议(或称为服务⽅式)。
②第⼆部分是存有该资源的主机IP地址(有时也包括端⼝号)。
③第三部分是主机资源的具体地址,如⽬录和⽂件名等。
爬⾍爬取数据时必须要有⼀个⽬标的URL才可以获取数据,因此,它是爬⾍获取数据的基本依据,准确理解它的含义对爬⾍学习有很⼤帮助。
三、爬⾍的基本原理与过程
1、基本原理
爬⾍是模拟⽤户在浏览器或者App应⽤上的操作,把操作的过程、实现⾃动化的程序。由以下4个基本流程。
(1)发起请求
通过HTTP库向⽬标站点发起请求,也就是发送⼀个Request,请求可以包含额外的header等信息,等待服务器响应
(2)获取响应内容
如果服务器能正常响应,会得到⼀个Response,Response的内容便是所要获取的页⾯内容,类型可能是HTML,Json字符串,⼆进制数据(图⽚或者视频)等类型
(3)解析内容
得到的内容可能是HTML,可以⽤正则表达式,页⾯解析库进⾏解析,可能是Json,可以直接转换为Json对象解析,可能是⼆进制数据,可以做保存或者进⼀步的处理
(4)保存数据
保存形式多样,可以存为⽂本,也可以保存到数据库,或者保存特定格式的⽂件
2、过程
简单来说这段过程发⽣了以下四个步骤:
(1)查域名对应的IP地址。
浏览器⾸先访问的是DNS(DomainNameSystem,域名系统),dns的主要⼯作就是把域名转换成相应的IP地址
(2)向IP对应的服务器发送请求。
(3)服务器响应请求,发回⽹页内容。
(4)浏览器显⽰⽹页内容。
⽹络爬⾍要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给⽤户所需要的数据,⽽不需要⼀步步⼈⼯去操纵浏览器获取。
四、什么是Request,Response
浏览器发送消息给⽹址所在的服务器,这个过程就叫做HTPPRequest
服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应的处理,然后把消息回传给浏览器,这个过程就是HTTPResponse
浏览器收到服务器的Response信息后,会对信息进⾏相应的处理,然后展⽰
堃的拼音怎么读Request中包含什么?
请求⽅式
主要有:GET/POST两种类型常⽤,另外还有HEAD/PUT/DELETE/OPTIONS
GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在头部
GET:向指定的资源发出“显⽰”请求。使⽤GET⽅法应该只⽤在读取数据,⽽不应当被⽤于产⽣“副作⽤”的操作中,例如在WebApplication中。其中⼀个原因是GET可能会被⽹络蜘蛛等随意访问
POST:向指定资源提交数据,请求服务器进⾏处理(例如提交表单或者上传⽂件)。数据被包含在请求本⽂中。这个请求可能会创建新的资源或修改现有资源,或⼆者皆有。
HEAD:与GET⽅法⼀样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本⽂部分。它的好处在于,使⽤这个⽅法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
PUT:向指定资源位置上传其最新内容。
OPTIONS:这个⽅法可使服务器传回该资源所⽀持的所有HTTP请求⽅法。⽤’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
DELETE:请求服务器删除Request-URI所标识的资源。
请求URL
URL,即统⼀资源定位符,也就是我们说的⽹址,统⼀资源定位符是对可以从互联⽹上得到的资源的位置和访问⽅法的⼀种简洁的表⽰,是互联⽹上标准资源的地址。互联⽹上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理它。
URL的格式由三个部分组成:
第⼀部分是协议(或称为服务⽅式)。
第⼆部分是存有该资源的主机IP地址(有时也包括端⼝号)。
第三部分是主机资源的具体地址,如⽬录和⽂件名等。
爬⾍爬取数据时必须要有⼀个⽬标的URL才可以获取数据,因此,它是爬⾍获取数据的基本依据。
请求头
包含请求时的头部信息,如User-Agent,Host,Cookies等信息,下图是请求请求百度时,所有的请求头部信息参数
请求体
请求是携带的数据,如提交表单数据时候的表单数据(POST)
Response中包含了什么
所有HTTP响应的第⼀⾏都是状态⾏,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
响应状态
有多种响应状态,如:200代表成功,301跳转,404不到页⾯,502服务器错误
1消息——请求已被服务器接收,继续处理
2成功——请求已成功被服务器接收、理解、并接受
3重定向——需要后续操作才能完成这⼀请求
4请求错误——请求含有词法错误或者⽆法被执⾏
5服务器错误——服务器在处理某个正确请求时发⽣错误常见代码:200OK请求成功400BadRequest客户端请求有语法错误,不能被服务器所理解401Unauthorized请求未经授权,这个状态代码必须和WWW-Authenticate报头域⼀起使⽤403Forbidden服务器收到请求,但是拒绝提供服务404NotFound请求资源不存在,eg:输⼊了错误的URL500InternalServerError服务器发⽣不可预期的错误
503ServerUnavailable服务器当前不能处理客户端的请求,⼀段时间后可能恢复正常301⽬标永久性转移302⽬标暂时性转移
响应头
如内容类型,类型的长度,服务器信息,设置Cookie,如下图
响应体
最主要的部分,包含请求资源的内容,如⽹页HTMl,图⽚,⼆进制数据等
五、能爬取什么样的数据
⽹页⽂本:如HTML⽂档,Json格式化⽂本等
图⽚:获取到的是⼆进制⽂件,保存为图⽚格式
视频:同样是⼆进制⽂件
其他:只要请求到的,都可以获取
六、如何解析数据
直接处理
Json解析
描写洞庭湖的诗句正则表达式处理
BeautifulSoup解析处理
PyQuery解析处理
XPath解析处理
关于抓取的页⾯数据和浏览器⾥看到的不⼀样的问题
排气扇安装出现这种情况是因为,很多⽹站中的数据都是通过js,ajax动态加载的,所以直接通过get请求获取的页⾯和浏览器显⽰的不同。
七、如何解决js渲染的问题?
分析ajax
黑武士Selenium/webdriver
Splash
PyV8,挑虾线是什么梗
怎样保存数据
⽂本:纯⽂本,Json,Xml等
关系型数据库:如mysql,oracle,sqlserver等结构化数据库
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论