2016-11-21 27 views
0

Chrome用Selenium Webdriverを使用してPDF(http://judis.nic.in/supremecourt/imgs1.aspx?filename=43215)をダウンロードしようとしています。Selenium、Pythonを使用してPDFのダウンロードボタンにアクセス

[ダウンロード]ボタンは、ダイナミックリボンのページの上に表示されます。ダイナミックリボンは、ホバーオーバーすると表示されます。

これは、マウスが上に乗ったときにPDFがリボンのように見えることです。

PDF without the hover-over ribbon

私はPythonスクリプトを通じてこのダウンロードボタン(次の印刷シンボルへの下向きの矢印記号)をクリックしていきます。

ありがとうございます。

答えて

0

セレンをダウンロードする必要はありません。あなたは、PDFは基本的にあなたがPDFファイルを閲覧できるブラウザの内蔵の延長で開きますurllib2

import urllib2 

def download_file(pdf_url): 
    response = urllib2.urlopen(pdf_url) 
    file = open("doc.pdf", 'w') 
    file.write(response.read()) 
    file.close() 

def main(): 
    download_file("http://judis.nic.in/supremecourt/imgs1.aspx?filename=43215") 

if __name__ == "__main__": 
    main() 
+0

ありがとうございました。これは機能します。 PDF(.pdf)の代わりにテキストファイル(.txt)で回答を書く方法もありますか? –

+0

それはあなたの問題を解決します、答えとしてマークしてください。残念ながら、これはテキストファイルに変換されません。次のようなソリューションを使用できます:http://stackoverflow.com/questions/25665/python-module-for-converting-pdf-to-text – Ryan

+0

リンクがログインとパスワードで保護されている場合はどうなりますか? – StackUP

0

を使用することができます。 HTMLは拡張機能の中に常駐しているため、基本的にSeleniumにはアクセスできません。

requestsライブラリを使用してPDFを簡単にダウンロードできます。

import requests 

url = "http://judis.nic.in/supremecourt/imgs1.aspx?filename=43215" 
r = requests.get(url, stream=True) 

with open("THE.pdf", "wb") as fd: 
    for ch in r.iter_content(): 
     fd.write(ch) 
+0

リンクがアクティブなセッションでのみ動作している場合はどうなりますか? – StackUP

関連する問題