文本数据采集与处理之一上|学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习文本数据采集与处理之一上

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践文本数据采集与处理之一上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15509


文本数据采集与处理之一上

 

内容介绍

一、 Web 爬虫概述

二、 Request 讲解

 

本节学习第二讲文本数据采集与预处理。要进行文本挖掘的研究与工作,需要文本原,文本原在互联网上大量存在。

学会从互联网上采集与处理文本数据的方法。这一讲分为这样几个内容,文本数据的从互联网采集主要是Web爬虫。会介绍Web爬虫的一些相关技术。

然后,从web上抓取数据,首先要向web网站发请求,发请求有一个包叫request,了解request包的使用。请求反馈的内容,那么需要进行解析和处理。

那么解析主要用的是Lxml这样一个解析的工具。解析主要是把抓取的页面解析成一个文档数然后Xpath从文档数上面摘取果实。

主要是用Xpath方法,果实就是要的文本内容。然后会简介Selenium包是强大的交互能力,能抓取一般比较难以抓取的网站内容,抓取的内容想进一步处理,可以用一个非常强大的工具方法叫正则表达式。

 

 

一、 Web 爬虫概述

image.png

1,什么是爬虫

爬虫是请求网站并提取数据的自动化程序,是程序、软件需要向网站发送请求。得到响应,响应里面就包含着所需要的内容。

2,爬虫的基本流程

先向网站发送请求。网站接受以后反馈就获取响应,响应里面就包含着所需要的内容。在解析这个内容,然后最关键的就是要做解析,工作量花费的比较大的解析,网站响应的内容往往一个长的字符串,没有结构的,解析里面比较好就是变成一个结构。一般是变成一个树的结构,再从树上面去找需要的内容,找到文本内容以后,第四个步骤保存,可以保存成文件,也可以保存到数据库里面去。

3,Request

四个步骤里面先看发起请求,一般用request这样方法来解决。向网站发送请求request,Requests一般有两种方式,一种是GET、POST。GET就是像网站发一个请求,然后把内容给拿回来,POST还要向网站提交一些数据。比如说密码提交了以后,网站响应再拿到内容。请求有个URL,向网站发请求抓页面,到底抓哪一个页面,所以需要明确的URL就是网址,然后请求。还有请求的头的信息。比如说要指定浏览器的类型,因为请求也是通过浏览器的访问的这种方式,并且要模拟成一个浏览器访问。然后,还有一个请求体,像这个网站请求时候发送的一些数据。这是request,之后会专门要详细介绍request的相关内容

4,Response

response是网站接受请求以后在响应返回.响应状态,比如说成功状态,还有些错误的状态。都知道一个404的错误就是网页不存在,这都是响应状态,然后还有响应的头部信息,响应体信息,响应体里面主要是内容在这。

5,解析方式

再看一下很关键的一个解析。解析要花很多时间。解析最简单的,因为反馈的是一个长字符串,最简单就是直接处理字符串,比如从什么位置到什么位置,是需要的内容,或者再稍微复杂一点,用正则表达式的一些规则。对于一些有格式的数据,有相应的方法,比如说反馈的数据就是有结构的像一个表格一样的,那么可以用Json等数据解析。用的比较多的是DOM方法。DOM中文是文档对象模型,Document object model文档对象模型。是把网页解析成一棵文档数,有了这棵树以后,可以用lxml、BeautifulSoup、xpath从这个树上面去翻所需要的枝和叶,课后面会讲解Lxml+Xpath的组合方法。对于其他的一些方式,比如说一些动态的页面,动态脚本,比如说javascript,还有ajax等比较复杂一些的方法

除五个内容之外,还要注意啊,能抓的数据类型有哪些。从网上去爬数据,那可以爬文本、图片、视频等等。爬文本可能比较多,以后随着这个5G时代的到来,可能图片、视频也会越来越多。要保存的这个数据的方式,保存的文本文件、保存到关系数据库。保存到文档数据库。文档数据库可能会更多一点,抓的是一个文本的数据。然后,有些二进制文件,像图片和视频可以保存在二进制文件。另外,还要知道爬虫框架,就是别人已经编好了,长期经过考验的,然后用来做爬虫,里面已经分好了一些步骤也考虑到一些机制,比如说爬的时候突然断掉了以后,再续上去,断点续传,断点续爬,一些调度等,还有专门的框架的一些方法,比如说在python开发里面,比较重要一个scrap框架。这个是最著名,用的最多的,当然稍微有点复杂,另外还有其他的一些框架,后面会提到一个叫Selenium是个爬虫程序,也是一个爬虫的框架。

除了用python的编程之外,也可以用别人编好的这个工具,常用的工具有八爪鱼,用的特别多。一些非专业的人员,比如说搞旅游,搞房产的一些研究生。想做论文抓数据可以用八爪鱼来抓,另外还有后羿,就是射太阳的那个后羿,也是一个采集器,然后,还有就是火车采集器,就是火车头啊,在这几个里面,八爪鱼目前用的最多。也有些同学说不想学编程,想抓数据,八爪鱼就是一个方法。

 

二、 Request 详解

image.png下面来详细了解一下request方法,主要是通过request包来请求网站。在这里面主要有这样几个知识要知道

1,请求UPL

对UPL的结构要非常清楚,以

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name这个作为例子,前面有HTTP冒号,双斜杠后面有一个域名,域名后面一个冒号8080,然后再斜杠后面有一个目录,一个路径。后面再有文件名,然后问号后面再跟一些参数,然后后面*后面跟在跟一个名字。

分别是这样几个内容,一个叫协议HTTP协议,域名www.spxfans.com端口8080,然后虚拟目录的一个目录news,然后下面这是文件名是index asp,然后参数问号后面boardID=5&ID=24618&page都是参数部分。然后也就是*后面就是在页面里面定位到某一个位置。所以对URL很熟悉,因为最后向网站发请求的时候,一定要给一个明确的、准确的、唯一的UPL。

2,请求的方式

前面简单提过有GET和POST除了这两种之外,还有一些PUT,DELETE,HEAD,OPTIONS就是像网站发请求还是有多种方式的,当然用的最多的就是GET和POST。区别就是一个从网站拿数据,不需要往下传,提交数据的,如果要向网站提交数据,要用POST。

3,请求头

、Cookies等

请求头里面用的最多User-Agent用户代理,因为是要模拟一下浏览器去访问网站,所以要设一个User-Agent也就是浏览器的型号。然后还有Cookies,那么Cookies简单的说就是访问一个网站,可以在服务器端设立Cookies记录一些信息,下次再访问的时候,知道是个老访客。知道已经访问过。像有些网站的用户密码登录过以后,下次访问不用再登录用户名密码,都保存在Cookies里面。response=requests.get(url,headers={‘User-Agent:uagent}这个一个例子,Response等于request.get,这个点get就是上面讲的一个get的一个请求方式。然后括号里是URL,URL就是第一个讲的UPL完整的URL,然后头是headers,头在参数的里面参数名字叫headers,然后后面等于一个中括号中,括号里面是一个字典。一个key一个value,然后又是headers等于User-Agent:uagent这是个变量,这个在前面可以设等于什么等于某个浏览器型号。关于浏览器型号以后上机会讲怎么去查浏览器的型号。

4,请求体

请求体,就是请求的时候额外的要下载一些数据。一般会有data、json、params三种携带参数的方法

requests.request(method='POST,url=URL,data={‘k1’:’v1’,’k2’:’水电费’})例子,request.request括号里面可以设 method等于POST,或者在前面把request改成POST也可以,两种方法都可以,两种URL,URL是个变量,前面应该有快捷的URL复职了,然后传data,data里面放的就是key和value,就是字典,字典格式key和value,然后带到网页请求里面。网站接触到请求,同时知道要什么样的参数,这是请求体

5,超时设置

如果网站访问,由于网络问题,如果说不要超时肯定认为就没访问到啊,那就出错了,可以把超时设置的大一点,这有两种超时设置的方法,一个就是直接是timeout 0.1秒,就是超时社,要访问这个时间,在计算机网络里面零点几秒已经蛮长的 再一个呢,可以设两个值。代表了一个是链接的超时里面那个网址的超时,另外一个呢,就是你这个速度的常识啊,可以设两个值。

float or tuple。timeout=0.1#代表接收数据的超时时间 timeout=(0.1,0.2)#0.1代表链接超时0.2代表接收数据的超时时间

6,其它设置

代理设置(proxies)、会话(session)等等

这些之外还有其他的一些设置,比如说设置代理,知道访问有些网站需要代理,可以设置会话,就是和网站之间有会话的一个关系,设会话比较稳定可靠一点。

建议以后再用request的时候,先做一个会话方式,然后再请求网页内容,这个实验里面会有相应的方法。

相关文章
|
5月前
|
数据采集 XML 自然语言处理
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
|
11月前
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
59 0
|
11月前
|
数据采集 SQL 分布式计算
81 网站点击流数据分析案例(数据预处理功能)
81 网站点击流数据分析案例(数据预处理功能)
72 0
|
数据可视化
视觉可视化分析与设计
Visualization Analysis & Design
112 0
|
机器学习/深度学习 人工智能 自然语言处理
只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模
亚马逊提出的TabTransformer网络结构,颠覆了NLP/CV,为各种非结构化数据业务带来了巨大突破。当然,TabTransformer也擅于捕捉传统结构化表格数据中不同类型的数据信息,并将其结合以完成预估任务。本文就讲解如何构建TabTransformer并将其应用于结构化数据。
2210 1
只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模
|
数据可视化 数据挖掘 Python
数据分析案例-文本挖掘与中文文本的统计分析
数据分析案例-文本挖掘与中文文本的统计分析
220 0
数据分析案例-文本挖掘与中文文本的统计分析
|
机器学习/深度学习 算法 数据挖掘
数据分析中常见的10种数据编码方式
数据分析中常见的10种数据编码方式
844 0
数据分析中常见的10种数据编码方式
|
数据采集 开发者 Python
文本数据采集与处理之一 下|学习笔记
快速学习文本数据采集与处理之一 下
文本数据采集与处理之一 下|学习笔记
|
数据采集 XML JavaScript
文本采集与数据处理之一中|学习笔记
快速学习文本采集与数据处理之一中
文本采集与数据处理之一中|学习笔记
|
数据采集 SQL 数据挖掘
数据预处理-数据解析-总结及预定数据分析|学习笔记
快速学习数据预处理-数据解析-总结及预定数据分析
150 0
数据预处理-数据解析-总结及预定数据分析|学习笔记
下一篇
无影云桌面