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

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

作者: 下雨天的小蚂蚁 | 来源:发表于2020-02-18 12:32 被阅读0次

    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 爬虫网页页面和接口数据提取

        本文链接:https://www.haomeiwen.com/subject/uhlgfhtx.html