爬虫数据解析

Posted sunflying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫数据解析相关的知识,希望对你有一定的参考价值。

1、今日学习提纲

    聚焦爬虫、正则、bs4、xpath

2、聚焦爬虫:爬取页面中指定的页面内容

  --编码流程:

    --指定url

    -- 发起请求

    --获取响应数据

    --数据解析

    --持久化存储

3、数据解析分类

    --正则

    --bs4

    --xpath(*****   通用性最强)

4、数据解析原理概述

  解析的局部的文本内容都会在标签之间或标签对应的属性中进行存储

     1、进行指定标签的定位

     2、标签或者标签对应的属性中存储的数据值进行提取

5、实操练习

  1、使用正则进行数据解析

    1、爬取根据url爬取糗事百科的糗图板块下一张糗事图片     

import requests
import json
if __name__ == "__main__":
    url = https://www.qiushibaike.com/article/123267647
    # content 二进制的图片
    # text  字符串   content 二级制   json  对象
    img_data = requests.get(url = url).content
    with open(./qiutu.jpg,wb) as fp:
        fp.write(img_data)

    2、爬取糗事百科的糗图板块下所有的糗事图片    

                一个小错误: UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character ‘u2026‘ in position 30: ordinal not in range(256)  百度查了下
      可能是因为爬虫的User-Agent的地址太长了有省略号 。。。。

import requests,re
import os
import json
#爬取糗事百科中糗图模块下所有的糗图图片
if __name__ == "__main__":
    #创建文件夹,用于保存所有的图片
   if not os.path.exists(./qiutulibs):
        os.mkdir("./qiutulibs")
   url ="https://www.qiushibaike.com/imgrank/"
   headers = {
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/80.0.3987.116 Safari/537.36
    }
   #使用通用爬虫对url对应的一整张页面进行爬取,得到源码数据
   page_text = requests.get(url=url,headers=headers).text
   #使用聚焦爬虫将页面中所有的糗图进行解析/提取
   #  提取div的img标签
   ex = <div class="thumb">.*?<img src="(.*?)" alt.*?</div>
   #re.S  单行匹配    re.M  多行匹配
   img_src_list = re.findall(ex,page_text,re.S)
   for src in img_src_list:
       #拼接出完整的图片地址
       src = "https:"+src
       #发get请求
       img_data = requests.get(url = src,headers=headers).content
       #生成图片名称
       img_name = src.split("/")[-1]
       imgPath = ./qiutulibs/+img_name
       with open(imgPath,wb) as fp:
           fp.write(img_data)
           print(img_name,"下载成功")

 

 

    

    

  

以上是关于爬虫数据解析的主要内容,如果未能解决你的问题,请参考以下文章

爬虫 ItemLoader

爬虫代码实现三:打通爬虫项目的下载解析存储流程

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

JAVA爬虫--JS文件数据快速解析

Relay.js 没有正确解析组合片段

微博数据爬取 之 “保熟”的爬虫