亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python+selenium+chrome批量文件下載并自動創建文件夾實例

瀏覽:4日期:2022-07-27 11:50:59

實現效果:通過url所綁定的關鍵名創建目錄名,每次訪問一個網頁url后把文件下載下來

代碼:

其中 data[i][0]、data[i][1] 是代表 關鍵詞(文件保存目錄)、網站鏈接(要下載文件的網站)

def getDriverHttp(): for i in range(reCount): # 創建Chrome瀏覽器配置對象實例 chromeOptions = webdriver.ChromeOptions() # 設定下載文件的保存目錄為d盤的tudi目錄, # 如果該目錄不存在,將會自動創建 prefs = {'download.default_directory': 'e:tudi{0}'.format(data[i][0]), 'profile.default_content_setting_values.automatic_downloads':1} # 將自定義設置添加到Chrome配置對象實例中 chromeOptions.add_experimental_option('prefs', prefs) # 啟動帶有自定義設置的Chrome瀏覽器 # driver = webdriver.Chrome(executable_path='e:chromedriver', chrome_options=chromeOptions) driver = webdriver.Chrome(chrome_options=chromeOptions) driver.get(data[i][1]) info2 = re.findall(r’<a href='http://www.aoyou183.cn/bcjs/4286.html#' rel='external nofollow' onclick='(.*?)' cssclass='xz_pic'>’, driver.page_source, re.S) print(len(info2)) for js in info2: driver.execute_script(js) def main(): getDriverHttp()

注意:python 使用selenium下載文件時,chrome會提示是否下載多個文件(Download multiple files)

prefs = {'download.default_directory': 'e:tudi{0}'.format(data[i][0]), 'profile.default_content_setting_values.automatic_downloads':1}

設置允許多個文件下載。

補充知識:python項目實現配置統一管理的操作

一個比較大的項目總是會涉及到很多的參數,最好的方法就是在一個地方統一管理這些參數。最近看了不少的python項目,總結了兩種很有意思的配置管理方法。

第一種 基于easydict實現的配置管理

首先需要安裝numpy、easydict以及yaml:

pip install numpy pip install easydictpip install yaml

就可以了。

然后定義配置類config.py:

import numpy as npfrom easydict import EasyDict as edictimport yaml # 創建dict__C = edict()cfg = __C # 定義配置dict__C.dev = edict()__C.dev.name = ’dev-xingoo’__C.dev.age = 20 __C.test = edict()__C.test.name = ’test-xingoo’__C.test.age = 30 # 內部方法,實現yaml配置文件到dict的合并def _merge_a_into_b(a, b): '''Merge config dictionary a into config dictionary b, clobbering the options in b whenever they are also specified in a. ''' if type(a) is not edict: return for k, v in a.items(): # a must specify keys that are in b if k not in b: raise KeyError(’{} is not a valid config key’.format(k)) # the types must match, too old_type = type(b[k]) if old_type is not type(v): if isinstance(b[k], np.ndarray): v = np.array(v, dtype=b[k].dtype) else: raise ValueError((’Type mismatch ({} vs. {}) ’’for config key: {}’).format(type(b[k]), type(v), k)) # recursively merge dicts if type(v) is edict: try: _merge_a_into_b(a[k], b[k]) except: print((’Error under config key: {}’.format(k))) raise else: b[k] = v# 自動加載yaml文件def cfg_from_file(filename): '''Load a config file and merge it into the default options.''' with open(filename, ’r’, encoding=’utf-8’) as f: yaml_cfg = edict(yaml.load(f)) _merge_a_into_b(yaml_cfg, __C)

使用的時候很簡單,main.py:

from config import cfg_from_filefrom config import cfg cfg_from_file(’config.yml’)print(cfg.dev.name)print(cfg.test.name)

同級目錄下創建配置文件config.yaml

dev:name: xingoo-from-yml

輸出:

xingoo-from-ymltest-xingoo

總結

這樣的好處就是在任何的Python文件中只要from config import cfg就可以使用配置文件。

第二種 基于Class實現

這種基于普通的python對象實現的,創建config2.py:

class Config: def __init__(self): self.name = ’xingoo-config2’ self.age = 100

使用的時候直接創建一個新的對象,如何python模塊之間需要引用這個變量,那么需要把配置對象傳過去:

import config2 as config2 cfg2 = config2.Config()print(cfg2.name)print(cfg2.age)

輸出為:

xingoo-config2100

總結

第二種方法簡單粗暴...不過每次傳遞參數也是很蛋疼。還是喜歡第一種方式。

以上這篇python+selenium+chrome批量文件下載并自動創建文件夾實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩视频在线一区 | 在线看免费的污 | www.黄色在线 | 亚洲国产婷婷俺也色综合 | 91精品国产综合久久青草 | 狼人综合伊人网 | a大片久久爱一级 | 免费黄色在线观看视频 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美一区二区三区 | 日韩精品你懂的在线播放 | 一级待一黄aaa大片在线还看 | 香蕉大黄香蕉在线观看 | 国产毛片儿 | 一级毛片看真人在线视频 | 黄影院 | 免费人成年短视频在线观看免费网站 | 亚洲第一区在线 | 欧美一区二区三区免费看 | 中国三级毛片 | 含羞草1000成人免费视频 | 久草国产精品视频 | 96精品专区国产在线观看高清 | 久久青青草原综合伊人 | 91大神大战酒店翘臀美女 | 香蕉亚洲 | 免费看爱爱视频 | 欧美日韩亚洲综合在线一区二区 | 91精品福利久久久 | 视频一本大道香蕉久在线播放 | 亚洲精品系列 | 国产成人综合欧美精品久久 | 尤物在线看 | 美女免费观看一区二区三区 | 闲人综合网 | 亚洲国产99999在线精品一区 | 521色香蕉网在线观看免费 | 亚洲一区二区成人 | 国产在线观看一区精品 | a资源在线观看 | 九九99视频在线观看视频观看 | 欧美视频第一区 |