日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自动保存图片_Python学习笔记:利用爬虫自动保存图片

發布時間:2023/12/10 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动保存图片_Python学习笔记:利用爬虫自动保存图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

興趣才是第一生產驅動力。

Part 1

起先,源于對某些網站圖片瀏覽只能一張一張的翻頁,心生不滿。某夜,冒出一個想法,為什么我不能利用爬蟲技術把想看的圖片給爬下來,然后在本地看個夠。

由此經過一番初嘗試發現,MD一個破圖片網站還做什么反爬技術,還做得這么好,害我搞了一個晚上都搞不定,百思不得其解。

此事暫擱置一段落。

(附圖片網站:妹子圖)

Part 2

今日,又發現另一網站,遂再次進行測試一番,美名曰:練習技術。

此篇僅記錄如何保存圖片,而不是涉及網頁爬取、正則解析圖片鏈接識別等,后續再做補充。

第一次嘗試,直接請求圖片,保存

import urllib.request

import time

for i in range(1,6): # 循環次數根據圖片數確定

try:

f = open('C:\\Users\\Hider\\Desktop\\test\\de42b_0'+ str(i) + '.jpg', 'wb')

url = 'https://media.kymari.vip/images/2019/10/11/de42b_00' + str(i) + '.jpg'

f.write((urllib.request.urlopen(url)).read())

print(url)

f.close()

except Exception as e:

print(str(i) +" error")

i += 1

time.sleep(5) # 休眠5秒

print("All Done!")

發現能爬取,不過試過幾次,都是爬取了差不多10張圖就爬不動了。看來還是有反爬措施的,添加了time.sleep(5)每次休眠幾秒鐘,再請求,發現還是不行,繼續改進。

第二次嘗試,通過添加headers偽裝瀏覽器進行請求

import time

import requests

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}

for i in range(1,6):

try:

url = 'https://media.kymari.vip/images/2019/08/27/a5359_00' + str(i) + '.jpg'

r = requests.get(url)

with open('C:\\Users\\Hider\\Desktop\\test\\a5359_00'+ str(i) + '.jpg', 'wb') as f:

f.write(r.content)

print(url)

f.close()

except Exception as e:

print(str(i) +" error")

i += 1

time.sleep(10)

print("All Done!")

終于可以正常的把一整個網頁的圖片給保存下來了,done!

哭笑不得的是,網站是開發者可能也是技術一般,沒有做好反爬防護措施,針對付費VIP才能觀看的部分網頁圖片,給出了預覽圖,因此通過發現圖片命名規律,直接就把后續付費的部分圖片給爬下來,大肆觀看。

(附圖片網站:素人吧)

Part 3

此文只是針對某個具體網頁,圖片鏈接已經通過瀏覽器F12人工獲取,判斷規則,再進行一個循環保存而已,實際上,并不算一個“真正的爬蟲”,后續再通過其他網站進行練練手,完整的把整個爬取流程給學習完整。

發起請求:通過HTTP庫向目標站點發起請求,即發送一個Request,請求可以包含額外的headers、data等信息,然后等待服務器響應。這個請求的過程就像我們打開瀏覽器,在瀏覽器地址欄輸入網址:www.baidu.com,然后點擊回車。這個過程其實就相當于瀏覽器作為一個瀏覽的客戶端,向服務器端發送了 一次請求。

獲取響應內容:如果服務器能正常響應,我們會得到一個Response,Response的內容便是所要獲取的內容,類型可能有HTML、Json字符串,二進制數據(圖片,視頻等)等類型。這個過程就是服務器接收客戶端的請求,進過解析發送給瀏覽器的網頁HTML文件。

解析內容:得到的內容可能是HTML,可以使用正則表達式,網頁解析庫進行解析。也可能是Json,可以直接轉為Json對象解析。可能是二進制數據,可以做保存或者進一步處理。這一步相當于瀏覽器把服務器端的文件獲取到本地,再進行解釋并且展現出來。

保存數據:保存的方式可以是把數據存為文本,也可以把數據保存到數據庫,或者保存為特定的jpg,mp4 等格式的文件。這就相當于我們在瀏覽網頁時,下載了網頁上的圖片或者視頻。

總結

以上是生活随笔為你收集整理的python自动保存图片_Python学习笔记:利用爬虫自动保存图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。