八、数据提取
8.1概念:数据提取就是从响应中获取我们想要的数据的过程
8.2分类:
1.非结构化的数据:html等
处理方法:正则表达式,xpath
2.结构化数据:json、xml等
处理方法:转化为Python数据类型
8.3数据提取之json:
1.概念:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。
同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
2.如何找到返回json的url:使用chrome切换到手机页面
3.json的转换图示:
注意:具有read()或者write()方法的对象就是类文件对象
f = open(“a.txt”,”r”) f就是类文件对象
8.4使用retrying包对程序进行多次执行:
1.安装:pip install retrying
2.使用方法:@retry(stop_max_attempt_number=3)
装饰器格式,设置最大重试次数
8.5豆瓣爬虫实例:
8.6正则表达式
1.概念:用事先定义好的一些特定字符、及这些特定字符的组合,
组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。
2.常用正则表达式的方法:
re.compile(编译)
pattern.match(从头找一个)
pattern.search(找一个)
pattern.findall(找所有)
pattern.sub(替换)
3.正则表达式的规则:
4.原始字符串r的使用:
a.原始字符串定义(raw string):所有的字符串都是直接按照字面的意思来使用,
没有转义特殊或不能打印的字符,原始字符串往往针对特殊字符而言。
b.使用示例:
8.7内涵段子爬虫实例:
8.8 XPATH和LXML类库
1.为什么要学习XPATH和LXML类库:
lxml是一款高性能的 Python HTML/XML 解析器,
我们可以利用XPath,来快速的定位特定元素以及获取节点信息
2.什么是XPATH:
XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,
可用来在 HTML\XML 文档中对元素和属性进行遍历。
3.XML和HTML的概念:
4.XML的节点关系:
5.XPATH的节点选择工具:
1.Chrome插件 XPath Helper
2.开源的XPath表达式编辑工具,XMLQuire(XML格式文件可用)
3.Firefox插件 XPath Checker
6.XPATH节点选择语法:
a.通用语法如下图所示:
b.查找某个特定的节点或者包含某个指定的值的节点语法如下图:
c.选择未知节点语法如下图:
d.选取若干路径语法如下:
7.lxml库的使用:
a.初步使用:
导入lxml的etree库:
from lxml import etree
利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法:
html = etree.HTML(text)
注意:lxml 可以自动修正 html 代码
8.贴吧爬虫实例,爬取某个贴吧所有帖子的标题和图片
网友评论