用Python爬取日向、樱坂成员blog中的JPG文件的url并将图片下载到本地

前言

目前可以使用这段代码爬取日向坂46(hinatazaka46.com)、樱坂46(keyakizaka46.com)的成员blog图

目前对爬虫以及正则表达式还是不是很熟悉,姑且只能做到这个程度,会在接下来的几天加强自己对这方面的理解,然后会做下载紫团blog的代码
注意
代码中最开始的“初始设置”部分是需要使用者自定义的,比如:设置爬取的成员的名字(如katoshi、kosaka等等),还需要设置url,这需要使用者进入蓝团官网或者白团官网的成员blog界面复制上方的网址并贴在url = 后面,
(PS:由于同一个成员的blog是可以翻页的,所以需要不同的页的url来获取对应页的图片,此时注意不仅要改url名还要改name,可以改成如kosaka和kosaka_2_)

效果图

这是我下载了几个成员之后的状态
在这里插入图片描述
这就是我上面说的用kosaka_2_命名name的效果
这是kosaka第二页的内容

代码如下

import os,sys,time,json,time
import socket,random,hashlib
from concurrent.futures.process import ProcessPoolExecutor
import requests,configparser
import json,re

#初始设置
name = "katoshi" #想要将图片取的名字
os.makedirs('./Picture/'+name, exist_ok=True)
#在目录下创建一个文件夹用于保存图片,这里以Picture为例子
url = "https://www.hinatazaka46.com/s/official/diary/member/list?ima=0000&ct=5"# 加藤史
#url = "https://www.keyakizaka46.com/s/k46o/diary/member/list?ima=0000&ct=43"
#设置想要爬取的网站网址


path=os.getcwd()+'\\Picture\\'+name+"\\"
def getpicurl():
    jpglist =[]
    #设置url地址为想要爬取的图片
    html = requests.get(url).text
    pic_url = re.findall('img src="(.*?)"', html, re.S)
    count = 0
    print(len(pic_url))
    for key in pic_url:
        if("jpg" in key):
            jpglist.append(key)
            count=count+1
    print("全部张数为:"+str(count)+"开始下载喽")
    return jpglist
    #清洗只留下jpg文件url


def download(pic_url):
    num=1
    for i in pic_url:
        print(i)
        r = requests.request('get', i)  # 获取网页

        with open(path + name + str(num) + '.jpg', 'wb') as f:  # 打开写入到path路径里-二进制文件,返回的句柄名为f
            f.write(r.content)  # 往f里写入r对象的二进制文件
        f.close()

        print("下载第"+str(num)+"张图片成功!当前进度:"+str(num)+"/"+str(len(pic_url)))
        num = num+1
#main
pic_url = getpicurl()
download(pic_url)
print(type(pic_url))
print("下载完毕喽,祝您开心")
posted on 2020-11-22 16:22  小坂鱼  阅读(126)  评论(0编辑  收藏  举报