前言
目前可以使用這段代碼爬取日向坂46(hinatazaka46.com)、櫻坂46(keyakizaka46.com)的成員blog圖
目前對爬蟲以及正則運算式還是不是很熟悉,姑且只能做到這個程度,會在接下來的幾天加強自己對這方面的理解,然后會做下載紫團blog的代碼
注意
代碼中最開始的“初始設定”部分是需要使用者自定義的,比如:設定爬取的成員的名字(如katoshi、kosaka等等),還需要設定url,這需要使用者進入藍團官網或者白團官網的成員blog界面復制上方的網址并貼在url = 后面,
(PS:由于同一個成員的blog是可以翻頁的,所以需要不同的頁的url來獲取對應頁的圖片,此時注意不僅要改url名還要改name,可以改成如kosaka和kosaka_2_)
效果圖
這是我下載了幾個成員之后的狀態

這就是我上面說的用kosaka_2_命名name的效果

代碼如下
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("下載完畢嘍,祝您開心")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226867.html
標籤:python
上一篇:HTML的第二周
