栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用正则解析,分页爬取图片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用正则解析,分页爬取图片

最近在跟着网上的视频复习爬虫,记录一下

# -*-coding:utf-8-*-
#  爬取糗图百科中热图模块下的所有图片

import requests
import re
import os
if __name__=='__main__':
    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
    }
    url = "https://www.qiushibaike.com/imgrank/"
    '''
    url = "https://pic.qiushibaike.com/system/pictures/12482/124821966/medium/TJ4REMVCKAP8RJVA.jpg"
    
    一般爬虫的使用方式及保存
    
    # content返回的是二进制形式的图片数据,
    # text(字符串)、content(二进制)、json()(对象)
    img_data=requests.get(url,headers).content

    
    with open('out.png','wb')as f:
        f.write(img_data)
    '''
    if not os.path.exists('./糗图'):
        os.mkdir("./糗图")

    # 使用re正则解析
    # 使用requests对整张页面进行爬取
    page_data = requests.get(url, headers).text
    # 解析/提取
    # 这个正则能提取到多少元素就有多少个元素
    ex = '.*?
    # 将正则应用到page_data。返回为list
    # re.S单行匹配,re.M多行匹配
    img_src_list=re.findall(ex, page_data,re.S)
    for src in img_src_list:
        # 拼接成完整的图片url
        url_new="https:"+src
        img_data = requests.get(url_new,headers).content
        # 图片名称

        img_name=src.split("/")[-1]

        img_path='./糗图/'+img_name
        with open(img_path,'wb') as f:
            f.write(img_data)
        print(img_name,"ok!")
升级,实现分页功能
# -*-coding:utf-8-*-
import requests
import re
import os
if __name__=='__main__':

    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
    }
    # 分页实现一
    # url="https://www.qiushibaike.com/imgrank/page/%d/"
    # 分页实现二
    url = "https://www.qiushibaike.com/imgrank/page/"

    for pageNum in range(1,10):

        # url_new = format(url%pageNum)   # 一
        url_new = url+str(pageNum)      # 二

        path = "./糗图_分页/"+str(pageNum)+"/"
        if not os.path.exists(path):
            os.mkdir(path)

        ex = '.*?

        page_list = requests.get(url_new,headers).text

        img_list = re.findall(ex,page_list,re.S)
        for src in img_list:
            url_img = "https:"+src
            img_name = src.split('/')[-1]
            img_path= path+img_name

            img_data=requests.get(url_img).content

            with open(img_path,'wb') as f:
                f.write(img_data)

        print(pageNum,"ok")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325929.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号