2017-08-01 7 views
1

これは私が自由時間にしようとしていることです。しかし、私は複雑さと私が直面するかもしれない問題についてはまだ分かりません。私はこのようなURLに行きたいと思います:https://fred.stlouisfed.org/series/DFII5この図を画像として、どこにいても私のPCに保存してください。どちらのアプローチからすべての画像を取得することができましたhtmlの表/図要素を画像に変換する

private void GetWebpage(string url) 
    { 
     WebBrowser browser = new WebBrowser(); 
     browser.Navigate(url); 
     browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted); 

    } 

    void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     var browser = (WebBrowser)sender; 
     var client = new WebClient(); 
     foreach (var img in browser.Document.Images) 
     { 
      var image = img as HtmlElement; 
      var src = image.GetAttribute("src").TrimEnd('/'); 
      if (!Uri.IsWellFormedUriString(src, UriKind.Absolute)) 
      { 
       src = string.Concat(browser.Document.Url.AbsoluteUri, "/", src); 
      } 

      //Append any path to filename as needed 
      var filename = new string(src.Skip(src.LastIndexOf('/') + 1).ToArray()); 
      File.WriteAllBytes(filename, client.DownloadData(src)); 
     } 
    } 

var document = new HtmlWeb().Load("https://fred.stlouisfed.org/series/DFII5"); 
     var urls = document.DocumentNode.Descendants("img") 
             .Select(e => e.GetAttributeValue("src", null)) 
             .Where(s => !String.IsNullOrEmpty(s)); 

かさえがWinFormsのWebブラウザコントロールを使用します。

私の最初のアプローチは、いずれかのHTML敏捷性パックを使用していましたそのウェブページは、私が欲しいものですが、それはイメージではありません。

この作業は可能ですか?これを行うにはライブラリ/ナゲットが必要でしょうか?そして、これを達成するにはどうすればいいですか?注:C#で行う必要はありません。Pythonなどでもかまいません。

EDITは、さらにいくつかの研究が私の注意にこれらの2をもたらした:http://www.princexml.com/https://wkhtmltopdf.org/

は、彼らは私が理解し何からPDFライブラリへのHTMLの両方です。それを使用して、チャートのhtmlのみを取得してpdfにすることは可能でしょうか?

+0

ウェブページに行き、スクリーンショットを撮るためにセレンを使用してください。 https://stackoverflow.com/questions/35921168/how-can-i-get-screenshot-of-specified-element-using-webdriver-in-c-sharp –

答えて

1

HTML2PDFコンバータを試すことができます。 https://www.html2pdf.fr

またはHTML2PSコンバータを参照してください。 http://user.it.uu.se/%7Ejan/html2ps.html

ImageMagickは、変換を行うためにインストールされている場合、後者を使用することができます。 http://www.imagemagick.org/script/formats.phpを参照

+0

サンプルコードを提供できますか? – Iason

+0

ImageMagickではこれまでにこれまでやっていません。しかしおそらく、あなたがhtml2psをインストールしているなら、あなたはできるはずです: 'https:// fred.stlouisfed.org/series/DFII5' result.psを変換してください。しかしImageMagickには、https:から読めるようにすべてを修正する必要があるかもしれないpolicy.xmlファイルがあります。代わりに、あなたのブラウザであなたのリンク 'https:// fred.stlouisfed.org/series/DFII5'をダウンロードし、html2psまたはhtml2pdfを使用してください。しかし、もう一度、私は前にそれをしたことはありません。 – fmw42

1

ちょうど最初のアイデア。はい、そのグラフは画像ではありません。

1つのアイデアは次のようなものです:ソフトウェアをスクリーンショットにして、特定の領域を一部の画像編集SDKで切り取ってください。

ウェブサイトを読み込んでスクリーンショットを撮るために、私はセレンのようなものを考えていました。後で画像を編集するには、ImageMagickのようなものを使うことができます。

もう1つのアイデアは、ウェブサイトからその画像のメタデータを取得し、それを自分で描画することです。

関連する問題