【发布时间】:2018-07-08 07:05:29
【问题描述】:
这是我在空闲时间尝试做的事情。但是,我还不确定我可能面临的复杂性和问题。我想访问这样的网址:https://fred.stlouisfed.org/series/DFII5 并将此图表另存为图片,在我电脑上的任何本地位置。
我的第一个方法是使用 html 敏捷包:
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 网络浏览器控件:
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));
}
}
这两种方法都能够从该网页获取所有图像,但是图表是我想要的,它不是图像。
这个任务可能吗?我需要库/nugets 来做到这一点吗?我将如何实现这一目标?注意:不必在 C# 中执行,它可以在 Python 或其他任何东西中。
编辑一些进一步的研究让我注意到了这两个:http://www.princexml.com/ 和 https://wkhtmltopdf.org/
据我了解,它们都是 html 到 pdf 库。是否可以使用这些,仅获取图表的 html 并将其转换为 pdf?
【问题讨论】:
-
使用 selenium 进入网页并截图。你可以参考stackoverflow.com/questions/35921168/…
标签: c# python html .net html-agility-pack