我需要用DHL的数据自动化邮件发送过程。目前我们正在做的是:我们有一个DHL帐户,必须有人手动登录该帐户,下载包含订单跟踪详细信息的CSV转储文件,然后将其上载到服务器,从中导入数据并进行处理。
所以我想把整个过程自动化,这样只需要最少的人工干预。
1)我们是否可以从DHL自动下载过程?
注意:我使用的是Python
您可以使用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,您可以在最少或不需要手动干预的情况下自动完成整个过程。
您可以将Selenium用于Python。Selenium是一个自动化浏览器会话的软件包。您可以使用Selenium模拟鼠标点击和其他动作。要安装:
pip install selenium
您还必须为您喜欢使用的浏览器安装网络驱动程序。https://www.seleniumhq.org/projects/webdriver/
确保您使用的浏览器版本是最新的。
硒文档:https://selenium-python.readthedocs.io/
由于您正在处理密码和敏感数据,因此我不包括代码。
我会从寻找更方便的代码访问开始。。。
在谷歌上搜索“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']。网站上提供了每种格式