Python 爬虫网页页面和接口数据提取

1. 数据的分类

结构化的数据:json;xml

json模块,jsonpath模块,xpath

非结构化的数据:html

re模块,xpath

2. json模块

json_str-->python数据类型

json.loads(json_str)

python数据类型-->json_str

json.dumps(py_dict, indent=2, ensure_ascii=False)

json_str-->写入到文件中

json.load()

with open('文件名.txt', 'w') as f:

json.dump(f)

把文件中的json_str-->python数据类型变量

json.dump()

with open('文件名.txt', 'r') as f:

py_dict = json.load(json_str, f)

3. 了解jsonpath

from jsonpath import jsonpath

ret = jsonpath(py_dict. '$..xxx')

# 按照规则从python数据类型中提取数据,返回列表,如果匹配不到,则返回None

# 规则'$..xxx'表示根节点下所有名为xxx的key的值

# '$..book.title.@name' 获取全部div下的a标签的href属性的值

# '$..book.title.text()' 获取全部div下的a标签的文本内容的值

4. 复习re

re.match(r'规则’,'待匹配的字符串')

# 从第一个字符开始匹配,如果匹配不到则返回None

re.search(r'规则’,'待匹配的字符串')

# 全文匹配,返回第一个匹配到的结果

re.findall(r'规则’,'待匹配的字符串')

# 全文匹配,返回所有匹配到的结果组成的list

re.sub(r'规则’,'修改替换的字符串','待匹配的字符串')

# 返回替换之后的新字符串

p = re.compile(r'规则’)

p.findall('待匹配的字符串')

# 提前编译匹配规则,提高匹配速度

5. 了解xpath规则

//*[@id="xxx"]/a[1]/@href

#所有id为xxx的标签下的第一个a的href属性的值

//a[text()="下一页"]/@href

# 文本内容为下一页的a标签的href属性的值

//div/h3[last()]/text()

# 所有div下倒数第一个的h3中的文本内容

//div/h3[last()-1]/text()

# 所有div下倒数第二个的h3中的文本内容

//div/h3[position()>2]/text()

# 所有div下从第三个开始的所有h3中的文本内容

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 2,031评论 0 6
  • 上网原理 1、爬虫概念 爬虫是什麽? 蜘蛛,蛆,代码中,就是写了一段代码,代码的功能从互联网中提取数据 互联网: ...
    riverstation阅读 8,312评论 1 2
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,426评论 0 3
  • 100个常用的javascript函数 1、原生JavaScript实现字符串长度截取 复制代码代码如下: fun...
    老头子_d0ec阅读 376评论 0 0
  • (喜马拉雅FM同名账号有同步音频) 陈言家的房子跟父亲的排行一样,位置最西。 大伯家陈明早东首第一栋,一列五栋,方...
    天外阿呆阅读 720评论 10 44