爬虫数据解析方法详解

数据解析的方法:

          1、正则

          2、bs4

          3、xpath

          4、pyquery

 

1、如何爬取图片数据? 

   方式1:基于requests

   方式2:基于urllib

  注:urllib模块作用和requests模块一样,都是基于网络请求的模块。当requests问世后就迅速代替了urllib

2、上述两种方法爬取图片的不同之处是什么?

     使用urllib的方式爬取图片无法进行UA伪装,而requests方法可以。

3、分析开发者工具当中的Elements和network这两个选项对应的页面源码数据有何不同之处。

    (1)Eelements中包含的显示的页面源码数据为当前页面所有的数据加载完毕后,对应的完整页面数据(包含动态加载数据)

    (2)network中显示的页面源码数据仅仅为某一个单独的请求的响应数据(不包含动态加载数据)

4、数据解析的作用是什么?

      用来实现聚焦爬虫

5、数据解析的通用原理是什么?

     (1)指定标签的定位

     (2)取出标签中存储的数据或者标签中属性中的数据

6、网页中显示存储在哪里?

      都是存储在html的标签或标签的属性当中

第一部分 正则

常用的正则表达式

.:除换行之外的所有字符

[]:[aoe][a-w]匹配集合中的任意一个字符

\d:数字[0-9]

\D:非数字

\W:非\w

\w:数字、字母、下划线、中文

\s:所有的空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\]

\S:非空白

数量修饰:

* :任意多次

+:至少1次

?:可有可无 0次或者1次

{m}:固定m次

{m,}:至少m次

{m,n}:m到n次

边界:

$:以某某结尾

^:以某某开头

分组:(a,b)

贪婪模式:.*

非贪婪模式:.*?

 

第二部分  bs4

1、bs4解析的原理是什么?

     (1)实例化一个Beautifulsoup对象,且将待解析的页面源码加载到该对象中

     (2)调用Beautifulsoup对象中相关方法或者属性进行标签定位和文本数据提取

2、Beautifulsoup对象的实例化

    (1)Beautifulsoup(fp,'xml'):用来将本地存储的html文档进行解析

    (2)Beautifulsoup(page_text,'/xml'):用来将互联网上请求到页面源码数据进行解析

3、标签定位

   (1)soup.tageName:只可以定位到第一次出现tagName标签

   (2)soup.find('tageName',attaName='Vaule'):属性定位

   (3)soup.findALL:跟find一样的作用属性定位,只不过findALL返回的是列表

   (4)soup.select('tang>ul>li')

4、取数据

  (1).text:返回的是该标签下的所有文本内容

  (2).stribg:返回的是该标签直系的文本内容

 

第三部分   xpath表达式

1、解析原理

(1)实例化一个etree的对象,且将待解析的页面资源加载到该对象中

(2)调用etree对象,且将待解析的页面源码加载到该对象中

2、实例化etree对象

(1)etree.parse('filename'):将本地html文档加载到该对象中

  (2)etree.HTML('page_text'):网站获取加载到该对象

3、标签定位

      属性定位:tagName[@attrName='Vaule']

4、取文本

(1)/text():直系文本内容

(2)//text():所有的文本内容

5、取属性

/attrName

6、局部数据解析

      将定位到的标签作为待解析的数据,再次用xpath表达式解析数据

  注:在局部数据解析的时候,xpath表达式中要使用./操作,./表示的就是当前局部数据(xpath的调用者)

总结:

      最常用的解析方法还是bs4和xpath,所以掌握这两种方法是主要的,需要多多练习。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(python爬虫)