2009-08-04 26 views
0

Pythonを使用していくつかのWebページからファイルを自動的にダウンロードしようとすると、私はWebページのダイアログウィンドウ(私はIEを使用しています)を取得します。ウィンドウには、「続行」や「キャンセル」などの2つのボタンがあります。私は続行ボタンをクリックする方法を理解できません。問題は で、WebページダイアログをPythonで制御する方法がわかりません。私は winGuiAutoを使ってウィンドウのコントロールを見つけようとしましたが、どのボタンタイプも認識できませんでした。 コントロール...アイデア?PythonでWebページダイアログを制御する方法

サーシャ

私の質問の明確化:

私の目的は、特定のWebサイトから株価データをダウンロードすることです。私は多くの株式のためにそれを実行する必要があるので、私はPythonが私のためにそれを繰り返し行う必要があります。この特定のサイトは、リンクをクリックしてExcelファイルにダウンロードさせることで、データをエクスポートします。しかし、リンクをクリックすると、私はこのファイルをダウンロードしたいと思うかどうか私に尋ねるWeb Pageダイアログボックスが表示されます。このWebページダイアログは私の問題です.HTMLページではなく、通常のウィンドウダイアログボックスではありません。それは別のもので、私はPythonでそれを制御する方法を設定できません。 2つのボタンがあり、そのうちの1つをクリックする必要があります(例:続行)。それは、IEで実装された特別な種類のウィンドウのようです。それはこのようなタイトルによって区別されます:Webページダイアログ - ダウンロードblalblabla。 Continue mannuallyをクリックすると、winGuiAutoライブラリでどのように処理するかを知っている通常のWindowsダイアログボックス(開く、保存、キャンセル)が開きます。 Webページのダイアログウィンドウにこのライブラリを使用しようとしました。 Autoit Infoツールでボタンを認識しようとしました。実際には、これらはボタンではなく、実際にはリンクしていますが、リンクが見えず、ソースコードが表示されていません...私は、このWebページのダイアログボックスが何であるか、 Python。それが私の質問でした。

+0

あなたは何を求めているのか分かりません...コードサンプルを使って、あなたがしようとしていることを明確にしてください。 –

+2

あなたはPythonについて言及していますので、いくつかのコードを使用していますか?それを投稿できますか? –

+0

pythonスクリプトを使ってファイルをダウンロードしようとしていますか?その場合は、ブラウザでページを開き、[続行]ボタンをクリックして何が起こるかを確認してください。あなたはファイルを取得していますか?多分あなたは他のアプローチを試して、あなた自身の最終的なURLを把握している間にPythonにダウンロード作業をさせるべきでしょうか? – kender

答えて

0

あなたはできませんし、したくないです。質問をするときは、直前の課題だけでなく、達成しようとしていることを説明してください。あなたは間違った道をたどっている可能性が高いです。あなたがしようとしていることをやるための他の方法があります。

0

「ウェブページのダイアログ」というタイトルは、これがJavascriptで生成された入力ボックスであることを示しています。なぜ、winGuiAuto経由でアクセスできないのですか?あなたが直接求めていることは可能ではありません。

しかし、あなたがしたいことがサイトからこのデータをダウンロードするだけであることを前提にして、なぜGUIを使用していますか? PythonはIEを制御せずにインターネットからファイルをダウンロードするのに必要なものすべてを提供します。あなたがフォローしたいだろうプロセスは、次のとおりです。

  1. ホストページをダウンロード
  2. (それが変更された場合)ローカルファイルにそのURLからファイルをダウンロードし
  3. ページでは、ダウンロード用のURLを検索
  4. Pythonで

これは次のようになります。セレンのPython bを使用することをお勧めし

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 
0

をindings:

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) 
関連する問題