最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+tkinter實現(xiàn)高清圖片保存

 更新時間:2022年03月11日 14:59:03   作者:老王在這  
作為愛玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來,如果一張張的去保存那效率又低。所以本文用Python寫一個保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下

作為愛玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢? 換上一張心儀的圖片整個人都舒暢多了。但是在網(wǎng)上有很多心儀的圖片想要保存下來,如果一張張的去保存那效率又低,而后面的壁紙很有很多好看的又沒有時間去看,這樣就讓我們錯過了很多好看的壁紙,我們從從網(wǎng)站上一個一個下載實在太麻煩。

在這里插入圖片描述

于是我用Python寫一個保存圖片的功能,把我們的圖片給保存到我們的電腦,這樣就可以瀏覽哪張好看就換哪張,不用再去慢慢保存了。

在這里插入圖片描述

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

前言

Python的學(xué)習(xí)先從基礎(chǔ)開始,給自己找任務(wù)多給自己實踐的機會只有實踐才能悟出道理,因為實踐練習(xí)才是學(xué)習(xí)的最好方式。

基本開發(fā)環(huán)境

pycharm

Python 3.8

主要相關(guān)模塊

request,BeautifulSoup,tkinter(Python內(nèi)置庫,直接導(dǎo)入即可)

先看一下(Python+tkinter(圖形化界面設(shè)計))最終效果吧,高清大圖保存到本地電腦了,

(現(xiàn)在只需要在控制臺輸入pyinstaller -F -w 自己的py文件名.py)就可以就能打包成exe放到桌面了。

在這里插入圖片描述

在這里插入圖片描述

分析網(wǎng)頁

在爬取之前第一步還是先對網(wǎng)頁進行分析,確定網(wǎng)頁是靜態(tài)的還是動態(tài)的,知己知彼才好下手,是吧!以避開爬取難點,節(jié)約時間。

在這里插入圖片描述

我們打開網(wǎng)頁右鍵檢查輸入關(guān)鍵字發(fā)現(xiàn)可以找到圖片的信息,我們大致可以確定這個網(wǎng)站是靜態(tài)的。那么我們就可以根據(jù)普通的方法對網(wǎng)頁進行抓取。

開始工作

1.1

先是構(gòu)造個偽造頭防止簡單的的反爬,然后對網(wǎng)頁發(fā)起請求,如果我請求的對象得到的狀態(tài)碼是200(成功訪問)那么就返回text文本給我。

在這里插入圖片描述

1.2

網(wǎng)頁請求成功之后我們就可以在網(wǎng)頁分析圖片存放的位置在哪。

在這里插入圖片描述

通關(guān)觀察發(fā)現(xiàn),我們要的圖片儲存在標簽div class=‘list’下面的ul標簽,ul標簽下面li全部是我們需要的圖片。位置我們找到了那么接下來就實例化一個soup對象來找到所有的li標簽,緊接著循環(huán)每個li標簽,獲取li標簽里邊標簽b獲取圖片的名字,然后再到img標簽src這個屬性提取圖片鏈接。

在這里插入圖片描述

下面代碼演示。

在這里插入圖片描述

1.3

圖片的名字和圖片的鏈接都有了,接下來就是創(chuàng)建存放位置,因為圖片是二進制數(shù)據(jù),所以以content的方式請求,最后以wb的形式寫入文件夾。

在這里插入圖片描述

分析網(wǎng)頁我們不難發(fā)現(xiàn)頁面翻頁的規(guī)律,只要循環(huán)一下就能實現(xiàn),頁面翻頁實現(xiàn)翻頁爬取。(想要更多翻頁自己改數(shù)字吧)

index_2.htm

index_3.htm

index_4.htm

在這里插入圖片描述

最后就是設(shè)置一下tkinter圖形化界面(這里不再過多詳解,可以上博客查看),設(shè)計與程序結(jié)合一下就完成了。

在這里插入圖片描述

實現(xiàn)

在這里插入圖片描述

全部代碼

# @Author : 王同學(xué)
import requests
from bs4 import BeautifulSoup
import os
import tkinter as tk    # GUI
import concurrent.futures
import threading



def get_content(url):
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
    response = requests.get(url,headers)
    response.encoding = response.apparent_encoding  # 自動轉(zhuǎn)碼
    if response.status_code == 200:
        return response.text


def get_data(response):
    soup = BeautifulSoup(response,'lxml')
    all_li = soup.find(class_="list").find('ul')
    for i in all_li.find_all('li'):
        if i.find('b') is not None:
            title = i.find('b').text
        else:
            title = 'NOT'
        images = i.find('a').find('img').get('src')
        save_images(title,images)



def save_csv():
    pass

def save_images(title,images):
    if not os.path.exists('img'):   # 創(chuàng)建文件夾
        os.mkdir('img')
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
    images_data = requests.get(url=images,headers=headers).content
    with open('img\\' + title + '.jpg', mode='wb')as f:
        f.write(images_data)
        print('正在保存===>: ',title)

    # GUI文本框輸入
    qq.insert(tk.INSERT,"正在保存圖片:" + title + '\n')
    qq.yview_moveto(1)
    qq.update()



def main():
    print('===================已經(jīng)點擊按鈕===========================')
    for i in range(2,11):
        url = f'http://www.netbian.com/index_{i}.htm'  # 循環(huán)
        qq.insert(tk.INSERT,f'==========================正在保存第{i}頁的圖片=========================='+ '\n')
        qq.update()
        print(f'============================正在保存第{i}頁的數(shù)據(jù)內(nèi)容========================')
        response = get_content(url)
        get_data(response)
    qq.insert(tk.INSERT,'=================================保存結(jié)束================================')



# 多線程 防止GUI卡死
def process_it():
    it = threading.Thread(target=main)
    it.setDaemon(True)
    it.start()




if __name__ == '__main__':
    # 設(shè)置GUI圖形界面
    windoms = tk.Tk()

    windoms.iconbitmap()

    windoms.title('圖片')
    windoms.geometry('500x500+650+300')

    # labal
    text = tk.Label(windoms,text='圖片小程序',font=('華文新魏',20))
    text.place(x=170,y=10)

    # 按鈕
    button = tk.Button(windoms,text='開始下載',font=(20),width=30,height=4,fg='Violet',bd=8,command=process_it)   # 開始下載
    button.place(x=140,y=80)
    button1 = tk.Button(windoms,text='退出',font=(20),width=30,fg='Violet',height=4,bd=8,command=windoms.quit)  # 退出
    button1.place(x=140, y=180)
    # 文本框
    qq = tk.Text(windoms,state='normal',bg='light cyan',fg='DeepPink')
    qq.place(rely=0.6,relheight=0.4)
    # 顯示窗口
    tk.mainloop()

到此這篇關(guān)于Python+tkinter實現(xiàn)高清圖片保存的文章就介紹到這了,更多相關(guān)Python tkinter圖片保存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python密碼學(xué)庫pynacl功能介紹

    python密碼學(xué)庫pynacl功能介紹

    PyNaCI能夠提供數(shù)字簽名、密鑰加密、公鑰加密、哈希和消息身份驗證、基于密碼的密鑰派生和密碼散列功能,這篇文章主要介紹了python密碼學(xué)庫pynacl,感興趣的朋友一起看看吧
    2022-05-05
  • Tornado路由與Application的實現(xiàn)

    Tornado路由與Application的實現(xiàn)

    本文主要介紹了Tornado路由與Application的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Python使用切片移動元素位置的代碼實踐

    Python使用切片移動元素位置的代碼實踐

    在 Python 中,切片是指從序列類型(如列表、字符串、元組等)中提取子序列的過程,切片可以用來快速獲取列表的一部分也可以用于反轉(zhuǎn)列表,本文小編給大家介紹了Python使用切片移動元素位置的代碼實踐,需要的朋友可以參考下
    2024-09-09
  • 在Python中移動目錄結(jié)構(gòu)的方法

    在Python中移動目錄結(jié)構(gòu)的方法

    這篇文章主要介紹了在Python中移動目錄結(jié)構(gòu)的方法,需要的朋友可以參考下
    2016-01-01
  • python+selenium行為鏈登錄12306(滑動驗證碼滑塊)

    python+selenium行為鏈登錄12306(滑動驗證碼滑塊)

    這篇文章主要介紹了python+selenium行為鏈登錄12306,使用python網(wǎng)絡(luò)爬蟲登錄12306,下面小編為大家分享一段代碼,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • Python實現(xiàn)刪除重復(fù)視頻文件的方法詳解

    Python實現(xiàn)刪除重復(fù)視頻文件的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)刪除重復(fù)視頻文件功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-10-10
  • Python小白垃圾回收機制入門

    Python小白垃圾回收機制入門

    在本篇文章里小編給大家分享的是關(guān)于Python小白垃圾回收機制入門的相關(guān)知識點,需要的朋友們可以參考下。
    2020-06-06
  • Python讀寫mat文件操作指南(使用scipy.io)

    Python讀寫mat文件操作指南(使用scipy.io)

    Matlab是一個非常好用的矩陣計算分析軟件,然而隨著深度學(xué)習(xí)的發(fā)展,Python語言也逐漸成為人們的常用編程語言,這篇文章主要給大家介紹了關(guān)于Python使用scipy.io讀寫mat文件的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Python Django實現(xiàn)個人博客系統(tǒng)的搭建

    Python Django實現(xiàn)個人博客系統(tǒng)的搭建

    個人博客是一個非常好的平臺,可以讓人們分享自己的知識和經(jīng)驗,也可以讓人們交流和互動。在這篇文章中,我們將介紹如何使用Python Django框架來開發(fā)一個個人博客系統(tǒng),希望對大家有所幫助
    2023-04-04
  • python如何正確的操作字符串

    python如何正確的操作字符串

    Python是一種知道如何不妨礙你編寫程序的編程語言。它易于學(xué)習(xí),功能強大,足以構(gòu)建Web應(yīng)用程序并自動化無聊的東西。本文是對常用字符串操作進行了詳細的總結(jié)分析,希望對您有所幫助。
    2021-06-06

最新評論

加查县| 洪雅县| 灵宝市| 红原县| 东乡| 敦化市| 寿光市| 商水县| 禹州市| 巨鹿县| 元阳县| 九江市| 灵宝市| 贡山| 博兴县| 靖安县| 赤水市| 桃江县| 新营市| 五华县| 玉林市| 彩票| 茌平县| 鹰潭市| 雷州市| 仁化县| 庄浪县| 社会| 体育| 扶沟县| 当涂县| 佛学| 蓝田县| 湟中县| 武定县| 青川县| 资中县| 平武县| 缙云县| 白河县| 博兴县|