# 数据解析

数据解析

1聚焦爬虫

概念:爬取页面中指定的页面内容。

  • 编码流程:
1.指定ur
2.发起请求
3.获取响应数据
4.数据解析
5.持久化存储

2.数据解析

2.1正则
2.2bs4
2.3xpatn(重点)

3.数据解析原理概述

  • 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
    1.进行指定标签的定位
    2.标签或者标签对应的属性中存储的数据值进行提取(解析)

4.正则

例1:爬取糗事百科中糗图板块下所有的糗图图片

findall:匹配字符串中所有的符合正则的内容
finditer:匹配字符串中所有的内容【返回的是迭代器】,从迭代器中拿到内容需要.group()
search,找到一个结果就返回,返回的结果是match对象。拿数据需要.group()
match是从头开始匹配
预加载正则表达式

obj=re.compile()

(?P<分组名字>正则)可以单独从正则匹配的内容中进一步提取内容

# 爬取糗事百科中糗图板块下所有的糗图图片
import requests
import re
import os

if __name__ == "__main__":
    #创建一个文件夹,保存所有图片
    if not os.path.exists('./qiutuLibs'):
        os.mkdir("./qiutuLibs")
    url = "https://www.qiushibaike.com/imgrank/page/2/"
    heraders = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"}
    #使用通用爬虫对url对应的一整张页面进行爬取
    page_text = requests.get(url=url, headers=heraders).text
    #使用聚焦爬虫将页面中所有图片进行解析/提取
    ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
    img_src_list = re.findall(ex, page_text, re.S)
    for src in img_src_list:
        #拼接出一个完整的图片url
        src = "https:" + src
        #请求到图片二进制数据
        img_data = requests.get(url=src, headers=heraders).content
        #生成图片名称
        img_name=src.split('/')[-1]
        #图片存储路径
        imgPath='./qiutuLibs/'+img_name
        with open(imgPath,'wb') as fp:
            fp.write(img_data)
            print(img_name,'下载成功')

例2:分页爬去

# 爬取糗事百科中糗图板块下所有的糗图图片
import requests
import re
import os

if __name__ == "__main__":
  heraders = {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"}
  # 创建一个文件夹,保存所有图片
  if not os.path.exists('./q'):
      os.mkdir("./q")
  # 设置一个通用的url模板
  url = "https://www.qiushibaike.com/imgrank/page/%d/"
  # pageNum=2

  for pageNum in range(1, 3):
      # 对应页码的url
      new_url = format(url % pageNum)
  # 使用通用爬虫对url对应的一整张页面进行爬取
      page_text = requests.get(url=new_url, headers=heraders).text
  # 使用聚焦爬虫将页面中所有图片进行解析/提取
      ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
      img_src_list = re.findall(ex, page_text, re.S)
      for src in img_src_list:
          # 拼接出一个完整的图片url
          src = "https:" + src
          # 请求到图片二进制数据
          img_data = requests.get(url=src, headers=heraders).content
          # 生成图片名称
          img_name = src.split('/')[-1]
          # 图片存储路径
          imgPath = './q/' + img_name
          with open(imgPath, 'wb') as fp:
              fp.write(img_data)
              print(img_name, '下载成功')

例三 爬取盗版天堂



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值