成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

使用selenium實(shí)現(xiàn)批量文件下載

高璐 / 1316人閱讀

摘要:背景實(shí)現(xiàn)需求批量下載聯(lián)想某型號的全部驅(qū)動程序。最終實(shí)現(xiàn)結(jié)果是我們希望根據(jù)網(wǎng)頁的列表進(jìn)行重命名和重新歸檔到文件夾,但是我們會發(fā)現(xiàn)如下幾個(gè)問題下載過來的文件名無法控制。

背景

實(shí)現(xiàn)需求:批量下載聯(lián)想某型號的全部驅(qū)動程序。

一般在做網(wǎng)絡(luò)爬蟲的時(shí)候,都是保存網(wǎng)頁信息為主,或者下載單個(gè)文件。當(dāng)涉及到多文件批量下載的時(shí)候,由于下載所需時(shí)間不定,下載的文件名不定,所以有一定的困難。

思路 參數(shù)配置

在涉及下載的時(shí)候,需要先對chromedriver進(jìn)行參數(shù)配置,設(shè)定默認(rèn)下載目錄:

global base_path
profile = {
    "download.default_directory": base_path
}
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", profile)
driver = webdriver.Chrome(executable_path="../common/chromedriver", options=chrome_options)
driver.implicitly_wait(10)
頁面分析

聯(lián)想官網(wǎng)上每個(gè)型號的驅(qū)動下載頁面如上圖所示,雖然前面有一個(gè)登陸的遮罩,但是實(shí)際上并不影響點(diǎn)擊。需要注意的是:

驅(qū)動列表,需要點(diǎn)擊才可以顯示具體的下載項(xiàng)目表格,否則可以找到對應(yīng)元素但無法獲取正確的信息

driver_list.find_element_by_class_name("download-center_list_t_icon").click()

每個(gè)下載列表的表頭建議做跳過處理

if sub_list.find_element_by_class_name("download-center_usblist_td01").text == "驅(qū)動名稱":
    continue

下載處理

在頁面中,找到“普通下載”的元素,點(diǎn)擊即可下載。最終實(shí)現(xiàn)結(jié)果是我們希望根據(jù)網(wǎng)頁的列表進(jìn)行重命名和重新歸檔到文件夾,但是我們會發(fā)現(xiàn)如下幾個(gè)問題:

下載過來的文件名無法控制。

依次下載的話,我們無法確認(rèn)需要下載多久。并行下載的話,無法有效的區(qū)分重命名。

在網(wǎng)上找了很久,也沒找到在下載時(shí)直接重命名的方法,所以最終選擇依次下載,當(dāng)每次下載完成后進(jìn)行重命名和歸檔,思路如下:

對每個(gè)驅(qū)動目錄,先新建一個(gè)文件夾,如:主板

點(diǎn)擊下載后開始下載文件

通過os模塊,找到下載目錄中所有文件,并按創(chuàng)建時(shí)間排序,找到最新創(chuàng)建的文件

由于未完成的文件后綴為.crdownload(chrome),那么根據(jù)后綴來判斷是否已完成下載,未完成的話繼續(xù)等待

待下載完成,將文件重命名并剪切到開始建立的歸檔目錄。這里需要注意的是,有些文件名中不能存在/符號,否則會導(dǎo)致重命名失敗,需要做一下替換。

在后期測試的時(shí)候,發(fā)現(xiàn)還有幾個(gè)坑需要注意:

在查找最新創(chuàng)建的文件時(shí),需要注意.DS_Store文件的處理。(Mac系統(tǒng),Windows則需要考慮thumbs.db

需要判斷一下最新創(chuàng)建的文件是否為文件夾,可以通過filter函數(shù)來處理

最新文件的排序查找實(shí)現(xiàn)如下:

def sort_file():
  # 排序文件
  dir_link = base_path
  dir_lists = list(filter(check_file, os.listdir(dir_link)))
  if len(dir_lists) == 0:
      return ""
  else:
      dir_lists.sort(key=lambda fn: os.path.getmtime(dir_link + os.sep + fn))
      return os.path.join(base_path, dir_lists[-1])


def check_file(filename):
  # 忽略系統(tǒng)文件
  if filename == ".DS_Store" or filename == "thumbs.db":
      return False
  global base_path
  # 排除文件夾
  return os.path.isfile(os.path.join(base_path, filename))
總結(jié)

最終實(shí)現(xiàn)效果如下:

完整代碼參考:https://github.com/keejo125/w...

如果大家有更好的方法,也歡迎分享。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/43344.html

相關(guān)文章

  • [Python自動化]selenium文件批量下載

    摘要:自動化這一專欄,將以目的為導(dǎo)向,以簡化或自動化完成工作任務(wù)為目標(biāo),將運(yùn)用于實(shí)踐中,解決實(shí)際問題,以激發(fā)讀者對這門腳本語言的學(xué)習(xí)興趣。 Python 自動化 這一專欄...

    wzyplus 評論0 收藏0
  • Python+Selenium實(shí)現(xiàn)在Geoserver批量發(fā)布Mongo矢量數(shù)據(jù)

      小編寫這篇文章的一個(gè)主要目的,主要是來給大家做一個(gè)解答,解答的內(nèi)容是Python+Selenium,具體的一個(gè)內(nèi)容解釋是什么呢?比如,我們可以實(shí)現(xiàn)Geoserver批量發(fā)布Mongo矢量數(shù)據(jù),具體的一個(gè)內(nèi)容,下面就給大家詳細(xì)解答下?! ∈紫龋暶饕幌?,這里我完成的腳步屬于半自動化的,我戲稱它為有監(jiān)督的半自動化腳本。具體原因后面會詳細(xì)說明。  一、安裝Selenium和ChromeDriver ...

    89542767 評論0 收藏0
  • 基于Selenium + Python的web自動化框架

    摘要:一什么是是一個(gè)基于瀏覽器的自動化工具,她提供了一種跨平臺跨瀏覽器的端到端的自動化解決方案。模塊主要用來記錄用例執(zhí)行情況,以便于高效的調(diào)查用例失敗信息以及追蹤用例執(zhí)行情況。測試用例倉庫用例倉庫主要用來組織自動化測試用例。 一、什么是Selenium? Selenium是一個(gè)基于瀏覽器的自動化工具,她提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:...

    sunny5541 評論0 收藏0
  • 怎么使用python對圖片進(jìn)行批量壓縮

      小編寫這篇文章的主要目的,主要是講解一些關(guān)于python的事情,比如需要對圖片進(jìn)行批量壓縮,壓縮的方法還是比較的多的,那么,為了提高效率,怎么進(jìn)行批量壓縮呢?下面就給大家詳細(xì)解答下?! ∏把浴 ∽罱谘芯吭趺磳D片資源進(jìn)行無損壓縮,網(wǎng)上也找了一些資料??偠灾?,收獲不少,所以想對最近的學(xué)習(xí)做個(gè)總結(jié)?! o損壓縮其實(shí)是相對而言的,目的是為了減小圖片資源的內(nèi)存大小但又不影響圖片的顯示質(zhì)量。下面我將...

    89542767 評論0 收藏0
  • 【小白+python+selenium庫+圖片爬取+反爬+資料】超詳細(xì)新手實(shí)現(xiàn)(01)webdriv

    摘要:且本小白也親身經(jīng)歷了整個(gè)從小白到爬蟲初入門的過程,因此就斗膽在上開一個(gè)欄目,以我的圖片爬蟲全實(shí)現(xiàn)過程為例,以期用更簡單清晰詳盡的方式來幫助更多小白應(yīng)對更大多數(shù)的爬蟲實(shí)際問題。 前言: 一個(gè)月前,博主在學(xué)過python(一年前)、會一點(diǎn)網(wǎng)絡(luò)(能按F12)的情況下,憑著熱血和興趣,開始了pyth...

    Half 評論0 收藏0

發(fā)表評論

0條評論

高璐

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<