介绍
这篇文章主要讲解了python +硒+铬如何实现批量文件下载并自动创建文件夹,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
实现效果:通过url所绑定的关键名创建目录名,每次访问一个网页url后把文件下载下来
<强>代码:强>
其[我][0]中数据,数据[我][1]是代表关键词(文件保存目录),网站链接(要下载文件的网站)
def getDriverHttp (): 因为我在范围(叙述): #创建Chrome浏览器配置对象实例 chromeOptions=webdriver.ChromeOptions () #设定下载文件的保存目录为d盘的tudi目录, #如果该目录不存在,将会自动创建 首选项={“download.default_directory":“e: \ \ tudi \ \ {0}“.format(数据[我][0]),“profile.default_content_setting_values.automatic_downloads": 1} #将自定义设置添加到铬配置对象实例中 chromeOptions.add_experimental_option (“prefs"首选项) #启动带有自定义设置的Chrome浏览器 #司机=webdriver.Chrome (executable_path=癳: \ \ chromedriver", chrome_options=chromeOptions) 司机=webdriver.Chrome (chrome_options=chromeOptions) driver.get(数据[我][1]) info2=re.findall (" # 39; & lt; a href=https://www.yisu.com/zixun/?”rel="外部nofollow”>进口numpy np 从easydict进口easydict法令 进口yaml #创建dict类型 估计=法令() cfg=估计 #定义配置dict类型 __C.dev=法令() __C.dev.name=& # 39; dev-xingoo& # 39; __C.dev.age=20 估计。测试=法令() __C.test.name=& # 39; test-xingoo& # 39; __C.test。=30岁 #内部方法,实现yaml配置文件到dict的合并 def _merge_a_into_b (a, b): “““合并配置字典到配置字典b,痛击 选项b每当他们也中指定一个。 “““ 如果没有法令(a)型: 返回 k、v a.items (): # b必须指定键 如果k b: 提高KeyError(& # 39;{}不是一个有效的配置关键# 39;.format (k)) #类型必须匹配 old_type=类型(b [k]) 如果old_type不是类型(v): 如果isinstance (b [k], np.ndarray): v=np。阵列(v, dtype=b [k] .dtype) 其他: 提高ValueError((& # 39;类型不匹配({}和{})& # 39; & # 39;配置关键:{}& # 39;).format(类型(b [k]), 类型(v), k)) #递归合并字典 如果类型(v)法令: 试一试: _merge_a_into_b (a [k], [k]) 除了: print((& # 39;错误配置下键:{}& # 39;.format (k))) 提高 其他: b [k]=v #自动加载yaml文件 def cfg_from_file(文件名): “““加载配置文件并将它合并为默认选项!”““ 张开(文件名,& # 39;" # 39;,编码=& # 39;utf - 8 # 39;) f: yaml_cfg=法令(yaml.load (f)) _merge_a_into_b (yaml_cfg __C)
使用的时候很简单,主要。py:
从进口cfg配置 cfg_from_file (& # 39; config.yml& # 39;) 打印(cfg.dev.name) 打印(cfg.test.name)
同级目录下创建配置文件config.yaml
dev:
引用>
名称:xingoo-from-yml输出:
xingoo-from-yml
引用>
test-xingoo
这样的好处就是在任何的Python文件中只要从进口cfg配置就可以使用配置文件。
第二种基于类实现
这种基于普通的Python对象实现的,创建config2。py:
类配置: def __init__(自我): self.name=& # 39; xingoo-config2& # 39; 自我。年龄=100使用的时候直接创建一个新的对象,如何python模块之间需要引用这个变量,那么需要把配置对象传过去:
进口config2 config2 cfg2=config2.Config () 打印(cfg2.name) 打印(cfg2.age)输出为:
xingoo-config2
引用>
100
第二种方法简单粗暴……不过每次传递参数也是很蛋疼,还是喜欢第一种方式。
看完上述内容,是不是对python +硒+铬如何实现批量文件下载并自动创建文件夹有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
python +硒+铬如何实现批量文件下载并自动创建文件夹