当前位置: 首页 > 知识库问答 >
问题:

使用Python自动下载DHL CSV转储

徐知
2023-03-14

我需要用DHL的数据自动化邮件发送过程。目前我们正在做的是:我们有一个DHL帐户,必须有人手动登录该帐户,下载包含订单跟踪详细信息的CSV转储文件,然后将其上载到服务器,从中导入数据并进行处理。

所以我想把整个过程自动化,这样只需要最少的人工干预。

1)我们是否可以从DHL自动下载过程?

注意:我使用的是Python

共有3个答案

杨乐意
2023-03-14

您可以使用selenium自动下载过程。下面是自动化任何登录过程和从网页下载项目的示例代码。由于要求不具体,我将使用一般用例并解释如何使用python自动登录和下载过程。

# Libraries - selenium for scraping and time for delay
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "Path to the directory to store downloaded files"}
chromeOptions.add_experimental_option("prefs",prefs)
chromedriver = r"Path to the directory where chrome driver is stored"
browser = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)

# To maximize the browser window 
browser.maximize_window() 

# web link for login page
browser.get('login page link') 

time.sleep(3) # wait for the page to load

# Enter your user name and password here. 
username = "YOUR USER NAME"
password = "YOUR PASSWORD"

# username send 
# you can find xpath to the element in developer option of the chrome
# referance answer "[https://stackoverflow.com/questions/3030487/is-there-a-way-to-get-the-xpath-in-google-chrome][1]"
a = browser.find_element_by_xpath("xpath to username text box") # find the xpath for username text box and replace inside the quotes
a.send_keys(username) # pass your username

# password send 
b = browser.find_element_by_xpath("xpath to password text box") # find the xpath for password text box and replace inside the quotes
b.send_keys(password) # pass your password

# submit button clicked 
browser.find_element_by_xpath("xpath to submit button").click() # find the xpath for submit or login button and replace inside the quotes

time.sleep(2) # wait for login to complete

print('Login Successful') # if there is no error you will see "Login Successful" message
# Navigate to the menu or any section using it's xpath and you can click using click() function
browser.find_element_by_xpath("x-path of the section/menu").click()

time.sleep(1)

# download file
browser.find_element_by_xpath("xpath of the download file button").click()
time.sleep(1)

# close browser window after successful completion of the process.
browser.close()  

这样,您可以自动登录和下载过程

  • 邮件自动化

对于使用smtplib模块的邮件自动化,请浏览本文档“https://docs.python.org/3/library/smtplib.html"

  • 过程自动化(调度)

为了每天自动化整个过程,请为这两个任务创建一个cron作业。请参阅python crontab模块。文档:https://pypi.org/project/python-crontab/enter此处链接说明

通过使用selenium、smtplib和python-crontab,您可以在最少或不需要手动干预的情况下自动完成整个过程。

岳英耀
2023-03-14

您可以将Selenium用于Python。Selenium是一个自动化浏览器会话的软件包。您可以使用Selenium模拟鼠标点击和其他动作。要安装:

 pip install selenium

您还必须为您喜欢使用的浏览器安装网络驱动程序。https://www.seleniumhq.org/projects/webdriver/

确保您使用的浏览器版本是最新的。

硒文档:https://selenium-python.readthedocs.io/

由于您正在处理密码和敏感数据,因此我不包括代码。

丁业
2023-03-14

我会从寻找更方便的代码访问开始。。。

在谷歌上搜索“dhl订单跟踪api”给出:

https://developer.dhl/api-catalog

作为第一个结果,它看起来很有用,并公开了相当多的功能。

然后,您需要弄清楚如何发出“RESTful”请求,这里有答案,比如使用python向RESTful API发出请求,如果您搜索“python教程Rest客户端”之类的东西,互联网上有很多教程

 类似资料:
  • 嘿,我尝试使用此代码自动创建docker容器 但我也得到了这个错误内部服务器错误(“OCI运行时创建失败:container\u linux。go:370:启动容器进程导致:exec:“git clone”:stat git clone:没有这样的文件或目录:未知”) 有什么方法可以解决这个问题吗?或者有其他方法吗?

  • 我使用无头铬硒包。当我手动访问网站并向下滚动时,它会加载更多的iTen,下面显示的while循环中的列表“nome”会更新。当我使用selenium和一个头部浏览器时,它也可以工作。为什么页面没有加载headless?也许这无关紧要,但我也从ua更改了userAgent。随机发送到ua['Chrome']。 我从这里得到的,

  • 问题内容: 我正在将Selenium 2.43.0与Python 2.7.5一起使用。在某一时刻,测试单击一个按钮,该按钮会将表单信息发送到服务器。如果请求成功,服务器将响应 1)成功的消息 2)合并了表格信息的PDF 我不在乎测试PDF,我的测试只是在寻找成功的消息。但是,PDF是服务器响应的包响应的一部分,我作为测试人员无法更改。 直到最近,使用Chromedriver从来都不是问题,因为Ch

  • 我不关心测试PDF,我的测试只是寻找一个成功的消息。然而,PDF是来自服务器的包响应的一部分,我作为测试人员不能更改。 直到最近,使用Chromedriver时,这从来都不是一个问题,因为Chrome会自动将pdfs下载到默认文件夹中。 然而,几天前,我的一个测试环境开始弹出一个单独的窗口,其中有一个pdf的“打印”屏幕,这使我的测试脱轨。 Selenium 2.43.0,Python 2.7.5

  • 我正在尝试制作一个简单的表单,显示服务器上的数据库列表,允许用户选择一个数据库点击ok,然后开始下载一个.sql文件,该文件可以用于恢复数据库 我遇到的问题是只有一个空白。sql文件已创建。如果我更改它,只使用mysqldump命令,为转储指定一个文件位置,我会在文件中获得更多信息,但只是其中的一部分: --主机:localhost数据库: -- 服务器版本 5.5.35-0ubuntu0.12.

  • 工具:Ubuntu、Python、Selenium、Firefox 我打算从订阅网站自动下载图像文件。我只有通过付费订阅才能访问服务器。为了避免每次文件下载都要点击一个按钮,我决定使用Python、Selenium和Firefox将其自动化。(我两天来第一次同时使用这三种饼干。我对饼干也知之甚少。) 我有兴趣按顺序或偏好下载以下三种格式:['EPS'、'PNG'、'JPG']。网站上提供了每种格式