1、爬取單張圖片
# 爬取單張圖片
import requests # 導(dǎo)入requests庫
url = "https://scpic.chinaz.net/files/pic/pic9/202112/hpic4875.jpg" # 圖片地址
response = requests.get(url) # 獲取圖片
with open("img/test1.jpg", "wb") as f: # wb:寫入二進(jìn)制文件
f.write(response.content) # 寫入圖片
print("圖片下載完成")
2、爬取批量圖片文章來源:http://www.zghlxwxcb.cn/news/detail-705062.html
# 爬取批量圖片
import requests # 導(dǎo)入requests庫
import os # 導(dǎo)入os庫
from bs4 import BeautifulSoup # 從bs4庫中導(dǎo)入BeautifulSoup
name_path = 'img2'
if not os.path.exists(name_path): # 判斷文件夾是否存在
os.mkdir(name_path) # 創(chuàng)建文件夾
def getUrl():
url = "https://sc.chinaz.com/tupian/gudianmeinvtupian.html" # 圖片地址
response = requests.get(url)
img_txt = BeautifulSoup(response.content, "html.parser") # 解析網(wǎng)頁
find = img_txt.find("div", attrs={'class': 'tupian-list com-img-txt-list'}) # 查找圖片
find_all = find.find_all("div", attrs={'class': 'item'}) # 查找所有圖片
for i in find_all:
url = 'https:' + i.find('img').get('data-original') # 獲取圖片地址
name = i.find('a').text # 獲取圖片名字
# print(name, url)
try:
getImg(url, name) # 調(diào)用getImg方法
except: # 相當(dāng)于java中的catch
print("下載失敗");
continue # 如果下載失敗,跳過
def getImg(ImageUrl, ImageName):
response = requests.get(ImageUrl).content # 獲取圖片
with open(f'{name_path}/{ImageName}.jpg', 'wb') as f: # 保存圖片,wb表示寫入二進(jìn)制文件
f.write(response)
print(ImageName, "下載完成")
if __name__ == '__main__':
getUrl()
3、如果一個網(wǎng)頁的圖片很多,可以進(jìn)行分頁爬取文章來源地址http://www.zghlxwxcb.cn/news/detail-705062.html
# 分頁爬取圖片
import requests # 導(dǎo)入requests庫
import os # 導(dǎo)入os庫
from bs4 import BeautifulSoup # 從bs4庫中導(dǎo)入BeautifulSoup
name_path = 'img2'
if not os.path.exists(name_path): # 判斷文件夾是否存在
os.mkdir(name_path) # 創(chuàng)建文件夾
Sum = 0 # 用于記錄下載的圖片數(shù)量
def getUrl(num):
if num == '1': # 第一頁特殊處理
url = "https://sc.chinaz.com/tupian/gudianmeinvtupian.html"
else:
url = f"https://sc.chinaz.com/tupian/gudianmeinvtupian_{num}.html" # 圖片地址
response = requests.get(url)
img_txt = BeautifulSoup(response.content, "html.parser") # 解析網(wǎng)頁
find = img_txt.find("div", attrs={'class': 'tupian-list com-img-txt-list'}) # 查找圖片
find_all = find.find_all("div", attrs={'class': 'item'}) # 查找所有圖片
for i in find_all:
url = 'https:' + i.find('img').get('data-original') # 獲取圖片地址
name = i.find('a').text # 獲取圖片名字
# print(name, url)
try:
getImg(url, name) # 調(diào)用getImg方法
except: # 相當(dāng)于java中的catch
print("下載失敗");
continue # 如果下載失敗,跳過
def getImg(ImageUrl, ImageName):
response = requests.get(ImageUrl).content # 獲取圖片
with open(f'{name_path}/{ImageName}.jpg', 'wb') as f: # 保存圖片,wb表示寫入二進(jìn)制文件
f.write(response)
print(ImageName, "下載完成")
global Sum
Sum += 1
if __name__ == '__main__':
num = input_num = input("請輸入要爬取的總頁數(shù):[1-7]\n")
if (int(num) > 7):
print("輸入有誤,最大為7")
exit()
else:
for i in range(1, int(num) + 1):
getUrl(num)
print(f"第{i}頁爬取完成")
print(f"共下載{Sum}張圖片")
到了這里,關(guān)于用python爬取某個圖片網(wǎng)站的圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!