码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫数据解析

时间:2020-06-25 14:06:56      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:ack   err   exist   创建文件夹   src   请求   list   head   练习   

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,"下载成功")

 

 

    

    

  

爬虫数据解析

标签:ack   err   exist   创建文件夹   src   请求   list   head   练习   

原文地址:https://www.cnblogs.com/sunflying/p/13191573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!