保存从网站嵌入PDF(Save embedded pdf from website)

2019-10-21 02:49发布

我写一个小C#应用程序从我们的供应商管理我们的安全数据表(化学品)。

目前,我手动搜索化学和保存PDF和我的程序添加一个链接到PDF。 问题是,我仍然有许多化学去所以这将是更好的过程自动化。

例如:化学具有以下部件号:271004

包含PDF链接是在这里:

链接

我一直在阅读页面的源代码,但不能找到一个链接到PDF

但我的HTML / JavaScript的知识是有限的,以目前.....

有没有什么方法来提取网页的PDF?

在此先感谢您的任何建议:)

Answer 1:

看在页面ID为“iframe元素msdsPageFrame ”。 该src该元素的属性包含URL到您的PDF。 下载该网址。

如果您有关于如何下载的URL或如何在搜索解析页面的ID,问另外一个问题的问题。



Answer 2:

现在,我能够使用的产品代码访问PDF文件直接:

www.sigmaaldrich.com/MSDS/MSDS/DisplayMSDSPage.do?country=NL&language=EN-generic&productNumber = 271004&品牌= SIAL&PageToGoToURL = NULL

使用下面的代码我尝试下载PDF格式:

        private void Download()
    {
        webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);                   // Uses the Event Handler to check whether the download is complete
        webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);  // Uses the Event Handler to check for progress made
        webClient.DownloadFileAsync(new Uri("http://www.sigmaaldrich.com/MSDS/MSDS/DisplayMSDSPage.do?country=NL&language=EN-generic&productNumber=271004&brand=SIAL&PageToGoToURL=null"), @"C:\Users\test\Downloads\newfile.pdf");           // Defines the URL and destination directory for the downloaded file
    }

    private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        Debug.WriteLine("DownloadProgressChangedEventHandler");
    }

    private void Completed(object sender, AsyncCompletedEventArgs e)
    {
        Debug.WriteLine("AsyncCompletedEventHandler");
    }

然而,这是行不通的。 的问题是,PDF首先产生(需要几秒钟)。 然而,AsyncCompletedEventHandler被触发的时候了。 我认为这是问题,为什么PDF文件没有下载。



文章来源: Save embedded pdf from website