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

使用python爬取4K壁紙保存到本地文件夾的全過程

 更新時間:2024年03月27日 09:00:06   作者:Yan-英杰  
圖片信息豐富多彩,許多網(wǎng)站上都有大量精美的圖片資源,有時候我們可能需要批量下載這些圖片,而手動一個個下載顯然效率太低,所以本文給大家介紹了使用python爬取4K壁紙保存到本地文件夾的全過程,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下

圖片信息豐富多彩,許多網(wǎng)站上都有大量精美的圖片資源。有時候我們可能需要批量下載這些圖片,而手動一個個下載顯然效率太低。因此,編寫一個簡單的網(wǎng)站圖片爬取程序可以幫助我們高效地獲取所需的圖片資源。 

目標(biāo)網(wǎng)站:

如果出現(xiàn)模塊報錯

c124a1693bfc457ba1f2909ee9d299fc.png

進入控制臺輸入:建議使用國內(nèi)鏡像源

pip install 模塊名稱 -i https://mirrors.aliyun.com/pypi/simple

我大致羅列了以下幾種國內(nèi)鏡像源:

清華大學(xué)
https://pypi.tuna.tsinghua.edu.cn/simple
 
阿里云
https://mirrors.aliyun.com/pypi/simple/
 
豆瓣
https://pypi.douban.com/simple/ 
 
百度云
https://mirror.baidu.com/pypi/simple/
 
中科大
https://pypi.mirrors.ustc.edu.cn/simple/
 
華為云
https://mirrors.huaweicloud.com/repository/pypi/simple/
 
騰訊云
https://mirrors.cloud.tencent.com/pypi/simple/

效果圖:

代碼詳解:

get_imgurl_list(url, imgurl_list) 函數(shù)用來獲取指定頁面中的圖片鏈接,并將這些鏈接存儲在 imgurl_list 列表中。

  • 使用 requests.get(url=url, headers=headers) 發(fā)起請求獲取頁面內(nèi)容。
  • 使用 etree.HTML(html_str) 將頁面內(nèi)容轉(zhuǎn)換為 etree 對象,方便后續(xù)使用 XPath 進行解析。
  • 通過 XPath 定位到圖片鏈接,并添加到 imgurl_list 中。

get_down_img(imgurl_list) 函數(shù)用來下載圖片到本地存儲。

  • 創(chuàng)建名為 "美女" 的文件夾用于存儲下載的圖片。
  • 遍歷 imgurl_list 中的圖片鏈接,逐個下載圖片并保存到本地文件夾中。

if __name__ == '__main__': 部分:

  • 設(shè)置需要爬取的頁數(shù) page_number = 10
  • 循環(huán)構(gòu)建每一頁的鏈接,如 https://www.moyublog.com/95-2-2-{i}.html
  • 調(diào)用 get_imgurl_list() 函數(shù)獲取圖片鏈接。
  • 調(diào)用 get_down_img() 函數(shù)下載圖片到本地。

代碼流程:

導(dǎo)入必要的庫和模塊:

import requests  # 用于發(fā)送HTTP請求
from lxml import etree  # 用于解析HTML頁面
import time  # 用于控制爬取速度
import os  # 用于文件操作

定義函數(shù)get_imgurl_list(url, imgurl_list)用于獲取圖片鏈接:

def get_imgurl_list(url, imgurl_list):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)
    html_str = response.text
    html_data = etree.HTML(html_str)
    li_list = html_data.xpath("http://ul[@class='clearfix']/li")
    for li in li_list:
        imgurl = li.xpath(".//a/img/@data-original")[0]
        imgurl_list.append(imgurl)
  • 發(fā)送GET請求獲取網(wǎng)頁內(nèi)容。
  • 將網(wǎng)頁內(nèi)容轉(zhuǎn)換為etree對象以便后續(xù)使用xpath進行解析。
  • 使用xpath定位所有的li標(biāo)簽,并遍歷每個li標(biāo)簽獲取圖片鏈接,將鏈接添加到imgurl_list列表中。
  • 定義函數(shù)get_down_img(imgurl_list)用于下載圖片:
def get_down_img(imgurl_list):
    os.mkdir("美女")
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
        }
        img_data = requests.get(url=img_url, headers=headers).content
        img_path = './美女/' + str(n) + '.jpg'
        with open(img_path, 'wb') as f:
            f.write(img_data)
        n += 1
  • 創(chuàng)建名為"美女"的目錄用于存放下載的圖片。
  • 遍歷圖片鏈接列表,逐個發(fā)送GET請求下載圖片數(shù)據(jù),并將圖片寫入本地文件。每張圖片以數(shù)字編號命名。

主程序部分:

if __name__ == '__main__':
    page_number = 10  # 爬取頁數(shù)
    imgurl_list = []  # 存放圖片鏈接
    for i in range(0, page_number + 1):
        url = f'https://www.moyublog.com/95-2-2-{i}.html'
        print(url)
        get_imgurl_list(url, imgurl_list)
    get_down_img(imgurl_list)
  • 設(shè)定要爬取的頁數(shù)page_number為10。
  • 初始化存放圖片鏈接的列表imgurl_list。
  • 循環(huán)構(gòu)建每一頁的鏈接并調(diào)用get_imgurl_list()函數(shù)獲取圖片鏈接。
  • 最后調(diào)用get_down_img()函數(shù)下載圖片到本地"美女"文件夾。

為什么我們在獲取數(shù)據(jù)的過程中需要用到IP池

應(yīng)對反爬蟲策略:許多網(wǎng)站會采取反爬蟲措施,限制單個IP的訪問頻率或次數(shù)。通過使用數(shù)據(jù)獲取服務(wù),可以輪換多IP來模仿多個用戶訪問,降低被封禁的風(fēng)險。

保證穩(wěn)定性:有些數(shù)據(jù)獲取服務(wù)可能存在不穩(wěn)定的情況,包括IP連接速度慢、IP被找到等問題。通過建立數(shù)據(jù)獲取服務(wù),可以預(yù)先準備多個可用的IP地址,確保程序在某個IP不可用時可以快速切換到其他可用IP,提高爬蟲程序的穩(wěn)定性。

提高訪問速度:IP池中的多個IP地址可以并發(fā)使用,實現(xiàn)多線程或異步請求,從而加快數(shù)據(jù)獲取速度。通過在數(shù)據(jù)獲取服務(wù)中保持一定數(shù)量的可用IP地址,可以實現(xiàn)更快速的數(shù)據(jù)抓取。

應(yīng)對封禁風(fēng)險:有些網(wǎng)站會根據(jù)某些特定的IP地址或IP段進行封禁,如果整個IP池中的IP都被封禁,可以及時更新IP池中的IP地址,避免影響爬蟲程序的正常運行。

降低被識別的風(fēng)險:當(dāng)爬蟲程序使用固定的IP地址進行訪問時,容易被網(wǎng)站識別出是爬蟲行為。

完整代碼:       

import requests  # python基礎(chǔ)爬蟲庫
from lxml import etree  # 可以將網(wǎng)頁轉(zhuǎn)換為Elements對象
import time  # 防止爬取過快可以睡眠一秒
import os
def get_imgurl_list(url, imgurl_list):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 發(fā)送請求
    response = requests.get(url=url, headers=headers)
    # 獲取網(wǎng)頁源碼
    html_str = response.text
    # 將html字符串轉(zhuǎn)換為etree對象方便后面使用xpath進行解析
    html_data = etree.HTML(html_str)
    # 利用xpath取到所有的li標(biāo)簽
    li_list = html_data.xpath("http://ul[@class='clearfix']/li")
    # 打印一下li標(biāo)簽個數(shù)看是否和一頁的電影個數(shù)對得上
    print(len(li_list))  # 輸出20,沒有問題
    for li in li_list:
        imgurl = li.xpath(".//a/img/@data-original")[0]
        print(imgurl)
        # 寫入列表
        imgurl_list.append(imgurl)
def get_down_img(imgurl_list):
    os.mkdir("美女")
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
        img_data = requests.get(url=img_url, headers=headers).content  #
        # 拼接圖片存放地址和名字
        img_path = './美女/' + str(n) + '.jpg'
        # 將圖片寫入指定位置
        with open(img_path, 'wb') as f:
            f.write(img_data)
        # 圖片編號遞增
        n = n + 1
 
 
if __name__ == '__main__':
    page_number = 10  # 爬取頁數(shù)
    imgurl_list = []  # 存放圖片鏈接
    # 1. 循環(huán)構(gòu)建每頁的鏈接
    for i in range(0, page_number + 1):
        # 頁數(shù)拼接
        url = f'https://www.moyublog.com/95-2-2-{i}.html'
        print(url)
        # 2. 獲取圖片鏈接
        get_imgurl_list(url, imgurl_list)
    # 3. 下載圖片
    get_down_img(imgurl_list)
 

以上就是使用python爬取4K壁紙保存到本地文件夾的全過程的詳細內(nèi)容,更多關(guān)于python爬取壁紙保存到本地的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 用Python實現(xiàn)web端用戶登錄和注冊功能的教程

    用Python實現(xiàn)web端用戶登錄和注冊功能的教程

    這篇文章主要介紹了用Python實現(xiàn)web端用戶登錄和注冊功能的教程,需要的朋友可以參考下
    2015-04-04
  • PyTorch數(shù)據(jù)讀取的實現(xiàn)示例

    PyTorch數(shù)據(jù)讀取的實現(xiàn)示例

    這篇文章主要介紹了PyTorch數(shù)據(jù)讀取的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Conda環(huán)境導(dǎo)出與導(dǎo)入的實現(xiàn)

    Conda環(huán)境導(dǎo)出與導(dǎo)入的實現(xiàn)

    本文主要介紹了Conda環(huán)境導(dǎo)出與導(dǎo)入的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python?tkinter?列表框Listbox屬性詳情

    Python?tkinter?列表框Listbox屬性詳情

    這篇文章主要介紹了Python?tkinter?列表框Listbox屬性詳情,列表框控件顯示多行文本,用戶可以選中一行或者多行。所有的文本只能使用一種字體,不能混合使用多種字體
    2022-07-07
  • 使用 Python 在京東上搶口罩的思路詳解

    使用 Python 在京東上搶口罩的思路詳解

    受疫情影響全民真的在搶口罩,而且還是搶不到的那種。這篇文章主要介紹了用 Python 在京東上搶口罩的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 完美解決pycharm 不顯示代碼提示問題

    完美解決pycharm 不顯示代碼提示問題

    這篇文章主要介紹了完美解決pycharm 不顯示代碼提示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 使用python實現(xiàn)一個簡單的圖片爬蟲

    使用python實現(xiàn)一個簡單的圖片爬蟲

    在本文中,我們將學(xué)習(xí)如何使用Python創(chuàng)建一個簡單的圖片爬蟲,我們將利用requests庫來發(fā)送HTTP請求,BeautifulSoup庫來解析HTML頁面,以及os和shutil庫來下載和保存圖片,通過這個教程,你將學(xué)會如何爬取網(wǎng)頁上的圖片并保存到本地,需要的朋友可以參考下
    2024-02-02
  • 使用Python的web.py框架實現(xiàn)類似Django的ORM查詢的教程

    使用Python的web.py框架實現(xiàn)類似Django的ORM查詢的教程

    這篇文章主要介紹了使用Python的web.py框架實現(xiàn)類似Django的ORM查詢的教程,集成的ORM操作數(shù)據(jù)庫向來是Python最強大的功能之一,本文則探討如何在web.py框架上實現(xiàn),需要的朋友可以參考下
    2015-05-05
  • python修改全局變量可以不加global嗎?

    python修改全局變量可以不加global嗎?

    這篇文章主要探討的是python修改全局變量可不可以不加global,我們在局部作用域內(nèi)使用全局變量,需要使用global關(guān)鍵字進行聲明,不然便不可用,但下面小編就和大家分享可以修改的數(shù)據(jù)類型在函數(shù)內(nèi)部做修改操作是不需要聲明global的商務(wù)情況,需要的朋友可以參考下
    2022-02-02
  • python cookielib 登錄人人網(wǎng)的實現(xiàn)代碼

    python cookielib 登錄人人網(wǎng)的實現(xiàn)代碼

    今天晚上不是很忙,所以早早的就在電腦的旁邊開始寫東西了。我今天給大家分享一個我自己用python寫的自動登錄 人人網(wǎng)的腳本,沒辦法就是懶!懶的輸入帳號和密碼,讓python給我們減少工作量
    2012-12-12

最新評論

文化| 冕宁县| 铁岭市| 盘山县| 随州市| 石家庄市| 安康市| 锡林浩特市| 河北省| 阿城市| 襄汾县| 无锡市| 将乐县| 南安市| 勃利县| 运城市| 南汇区| 柯坪县| 山丹县| 兴安盟| 穆棱市| 乐都县| 股票| 荔浦县| 游戏| 永吉县| 泽州县| 穆棱市| 永平县| 罗平县| 乐安县| 和静县| 攀枝花市| 长岛县| 木里| 鲁甸县| 辽宁省| 江西省| 西宁市| 清水河县| 平山县|