Google Chromeでpdfを開き、ダウンロードボタンを押したときに、そのpdfのホームページアドレスを取得して保存するpythonプログラムが走るようにしたいのですが、どのようにすればよいでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
1,最終的に行いたい事は何なのですかー?
pdfをダウンロードした時のダウンロードURLをローカルのファイルに保存しておきたいのでしょうか?
2,行いたいパソコンに対して、どこまで権限がありますか。
他のやり方もあると思いますが、chrome.downloads.onDeterminingFilenameイベントを使うという手もあります。
↓はpdfファイルを開いて、ダウンロードボタンを押した時にlocalStorageにurlを書き込むchromeの拡張サンプルです。
◆js/background.js
javaScript
1(function () { 2 'use strict'; 3 chrome.downloads.onDeterminingFilename.addListener(function(item, suggest) { 4 if(item.mime === 'application/pdf'){ 5 console.log(item.url); 6 localStorage.setItem(item.startTime, item.url); 7 } 8 }); 9})();
◆マニフェストファイル (manifest.json)
json
1{ 2 "author": "うみゅ", 3 "description": "PDF_Download", 4 "permissions": ["storage" , "downloads"], 5 "manifest_version": 2, 6 "background": { 7 "scripts": ["js/background.js"], 8 "persistent": false 9 }, 10 "name": "PDF_Download", 11 "homepage_url": "http://example.com/", 12 "version": "1.0.0" 13}
投稿2017/11/02 01:34
総合スコア5846
0
サイトがHTTPであればPythonでProxyを書けばダウンロードの処理を比較簡単にPythonだけでフックできます。サイトがHTTPSであれば難易度はぐっと上がってmitmproxy等を使ってSSL/TLSの通信内容をインターセプトするか、ChromeのSSL/TLSライブラリにOSの仕組みを利用してDLL/共有ライブラリフックを仕掛けてその通信内容をPythonでインターセプトできるようにします。
投稿2017/11/01 11:50
編集2017/11/01 11:54総合スコア6142
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。