Python|PyAutoGUI根据文件清单自动下载文件

背景

周五下班前公司合规部的同事找到我,说需要把公司制度管理系统中的所有制度下载下来,大概有三百多篇现行有效制度、五十多篇废止制度,离谱的是制度系统竟然没有批量下载的功能(供应商回复可以实现批量下载功能,但没这么快~ ),因为有点着急,就想到通过python脚本完成自动下载。这里参考了Python|PyAutoGUI实现自动点赞收藏里介绍的pyautogui库。
简单分析了下,文件下载的url是固定的url格式,且通过get的方法传的id参。我就后台数据库查到了要下载的制度的id列表,然后导出txt用于遍历。下载的脚本很简单,写完我就去出去吃饭了,吃个饭的功夫就全部下载完成了😁😁😁
源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pyautogui
import time

def auto_download(url):
pyautogui.click(500,97,duration=1.5) # 页面地址: Point(x=776, y=97)
pyautogui.typewrite(url,0.01)
pyautogui.press('Enter')
time.sleep(1.5) # 确保页面完全加载完成
pyautogui.click(2014,236,duration=2) # 下载正文: Point(x=2014, y=236)
time.sleep(1.5) # 确保页面完全加载完成
pyautogui.click(393,250,duration=2) # 打开附件: Point(x=393, y=250)
pyautogui.click(116,464,duration=1.5) # 全选附件: Point(x=116, y=464)
pyautogui.click(2371,387,duration=1) # 下载附件: Point(x=2371, y=387)
time.sleep(1.5)
if __name__ == '__main__':
# print(pyautogui.position())
print('***********请10秒内切换到浏览器中***********')
time.sleep(10)
id_list = r'C:\Users\admin\Desktop\制度20220903\现行有效.txt'
with open(id_list , encoding='utf-8') as f:
count = 1
for i in f.readlines():
url = ('http://xxxx/spa/document/index.jsp?id={}'.format(i))
auto_download(url)
print('***********已完成{}篇制度下载***********'.format(count))
count += 1

总结

这种通过GUI下载文件的方式只能用作应急方案,毕竟要专门腾出来电脑给它使用。如果时间不急的话,也完全可以通过系统标准接口实现文件下载。(当然最稳妥的方案是让供应商做成批量下载的标准功能)
事后反应过来,无中生有的工作我为啥揽过来了?大冤种本种就是我~😂😂😂


商业转载请联系作者获得授权,非商业转载请注明出处。

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

Python|PyAutoGUI根据文件清单自动下载文件
http://hncd1024.github.io/2022/09/03/Python PyAutoGUI根据文件清单自动下载文件/
作者
CHEN DI
发布于
2022-09-03
许可协议