当我尝试使用Python自动从某个网页下载文件时, 我得到网页对话窗口(我使用IE)。该窗口有两个按钮,例如“继续”和“取消”。我无法弄清楚如何点击继续按钮。问题是 我不知道如何用Python控制网页对话。我试着用 winGuiAuto找到窗口的控件,但它无法识别任何Button类型 控制......一个想法?
萨莎
澄清我的问题:
我的目的是从某个网站下载股票数据。我需要为很多股票执行它,所以我需要python以重复的方式为我做这件事。此特定站点通过单击链接让我在Excel文件中下载数据来导出数据。但是在点击链接后,我得到一个网页对话框,询问我是否确定要下载此文件。这个网页对话框是我的问题 - 它不是一个html页面,它不是一个常规的Windows对话框。这是其他东西,我无法配置如何使用python控制它。它有两个按钮,我需要点击其中一个(即继续)。看起来它是IE中实现的一种特殊窗口。它的标题看起来像这样:网页对话框 - 下载blalblabla。如果我单击继续手动它会打开一个常规窗口对话框(打开,保存,取消),我知道如何处理winGuiAuto库。试图将此库用于网页对话窗口而没有运气。尝试用自动信息工具识别按钮 - 没有运气。事实上,也许这些不是按钮,但实际上是链接,但是我看不到链接,也没有可见的源代码......我需要的是有人告诉我这个网页对话框是什么以及如何控制它蟒蛇。这是我的问题。
答案 0 :(得分:0)
你不能,也不想。当您提出问题时,请尝试解释您要实现的目标,而不仅仅是您之前的任务。你可能会走错路。还有其他一些方法可以做你想做的事。
答案 1 :(得分:0)
标题“网页对话框”表明这是一个Javascript生成的输入框,因此您无法通过winGuiAuto访问它。你不可能直接问什么。
但是,假设您想要做的只是从网站下载此数据,为什么要使用GUI? Python提供了从互联网上下载文件而无需控制IE所需的一切。您要遵循的流程是:
在Python中,这看起来像这样:
import urllib,re
f = urllib.urlopen('http://yoursitehere') # Original page where the download button is
html = f.read()
f.close()
m = re.search('/[\'"](.*\.xls)["\']/', html, re.S) # Find file ending .xls in page
if m:
urllib.urlretrieve(m.group(1), 'local_filename.xls') # Retrieve the Excel file
答案 2 :(得分:0)
最好使用selenium Python绑定:
from selenium import webdriver
from selenium.webdriver.common import alert
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
class AlertsManager:
def alertsManager(self,url):
self.url_to_visit=url
self.driver=webdriver.Ie()
self.driver.get(self.url_to_visit)
try:
while WebDriverWait(self.driver,1).until(EC.alert_is_present()):
self.alert=self.driver.switch_to_alert()
self.driver.switch_to_alert().accept()
except TimeoutException:
pass
if __name__=='__main__':
AM=AlertsManager()
url="http://htmlite.com/JS006.php" # This website has 2 popups
AM.alertsManager(url)