C# 从url位置下载PDF文件将生成HTML文件

C# 从url位置下载PDF文件将生成HTML文件,c#,pdf,download,C#,Pdf,Download,我正试图从网上下载一个PDF文件。下载的文件是HTML文件(无法使用Adobe Reader打开)。下载完成,结果为200 string tempFile = System.IO.Path.GetTempFileName(); tempFile = System.IO.Path.ChangeExtension(tempFile, "pdf"); HttpResponseMessage msg; using (HttpClient client = new Ht

我正试图从网上下载一个PDF文件。下载的文件是HTML文件(无法使用Adobe Reader打开)。下载完成,结果为200

 string tempFile = System.IO.Path.GetTempFileName();
 tempFile = System.IO.Path.ChangeExtension(tempFile, "pdf");
   
 HttpResponseMessage msg;
 using (HttpClient client = new HttpClient())
 {
 msg = await client.GetAsync($"https://www.anaf.ro/StareD112/ObtineRecipisa?numefisier=217776607.pdf");

            if (msg.IsSuccessStatusCode)
            {
                using (var file = File.Create(tempFile))
                {
                    var contentStream = await msg.Content.ReadAsStreamAsync(); 
                    await contentStream.CopyToAsync(file);
                    await file.FlushAsync();
                }
            }
        }
下载的文件包含以下内容:

<!DOCTYPE html><html><head><meta http-equiv="Pragma" content="no-cache"/><meta http-equiv="Expires" content="-1"/><meta http-equiv="CacheControl" content="no-cache"/><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><link rel="shortcut icon" href="data:;base64,iVBORw0KGgo="/><script>(function(){window["bobcmn"] = "111111101...})();</script><script type="text/javascript" src="/TSPD/08b919fd7aab2000e3f4522c0108677748c289d7a5e2904fcfef59fb022a19a5fd44f0a0664ad54a?type=10"></script><noscript>Please enable JavaScript to view the page content.<br/>Your support ID is: 10865965003120525066.</noscript>
(function(){window[“bobcmn”]=“1111111 01…}();请启用JavaScript查看页面内容。
您的支持ID是:10865965003120525066。
你能告诉我什么地方做得不对吗?

url根据请求显示验证码:

您的代码下载验证码的HTML

您需要使用一些技术来防止检测到刮擦。请尝试使用Selenium+无头浏览器。有关更多信息:

  • 硒+铬

  • 硒+幻影JS

  • url根据请求显示验证码:

    您的代码下载验证码的HTML

    您需要使用一些技术来防止检测到刮擦。请尝试使用Selenium+无头浏览器。有关更多信息:

  • 硒+铬

  • 硒+幻影JS


  • 你能告诉我我没有做对什么吗?没什么…这个文件是HTML文件而不是pdf文件-它只是某种防止数据被刮伤的保护我猜你没有找到正确的URL,但是可能没有一个URL可以直接将文件流式传输给你。看起来你正在使用的URL会导致一个HTML文件。如果,当你访问它在浏览器中传输PDF,然后是页面本身连接到文件服务器(或启动PDF生成过程)。如果您尝试在浏览器中使用示例中的链接,您将能够下载可使用Adobe Acrobat Reader DC读取的PDF文件。我从该链接通过代码下载的文件是初始问题声明中所附的文件。直到1天前,代码才正确下载PDF文件。我假设服务中发生了更改呃,但我不知道。你能告诉我我做得不对吗?没什么…文件是HTML文件而不是pdf文件-这是一种防止数据被刮伤的保护。我猜你没有找到正确的URL,但可能没有一个URL可以直接将文件流式传输给你。看起来你使用的URL似乎指向了HTML如果您在浏览器中访问它时,它向您传输PDF,则是页面本身连接到文件服务器(或启动PDF生成过程)。如果您尝试在浏览器中使用示例中的链接,您将能够下载可使用Adobe Acrobat Reader DC读取的PDF文件。我从该链接通过代码下载的文件是初始问题声明中所附的文件。直到1天前,代码才正确下载PDF文件。我假设服务中发生了更改呃,但我不知道。奇怪的是!对我来说,无论我用哪种浏览器打开链接,PDF文档都会直接打开。我尝试清空浏览器缓存并使用新安装的Windows,但验证码从未出现过……也许是因为你身在另一个国家,你才看到它?我尝试了另一个实验:在一个简单的WinForms中应用程序我放置了一个WebBrowser,我在上面的链接中设置了Navigate属性。PDF文件显示正确!现在我正在寻找将浏览器内容保存到PDF文件的方法。顺便说一句,我今天无法复制此验证码。我试着从Tor browser加载您的url,并复制了第三个行为-它将我重定向到。有时网站会关闭这是我们财政部的网站!我认为最简单的方法是找到一种方法,将c#应用程序中WebBrowser控件的内容保存到PDF文件中。我还没有找到它!奇怪的是!对我来说,无论使用哪个浏览器打开该链接,PDF文档都会直接打开。我尝试清空浏览器缓存和新安装的Windows,但验证码从来没有出现过…可能是因为你在另一个国家出现过?我尝试了另一个实验:在一个简单的WinForms应用程序中,我放置了一个WebBrowser,我用上面的链接设置了导航属性。PDF文件正确显示!现在我正在寻找一种保存bro的方法wser内容到PDF文件。顺便说一句,我今天无法复制此验证码。我试图从Tor浏览器加载您的url,并复制了第三个行为-它将我重定向到。有时该网站会进行维护。这是我们财政部的网站!我想最简单的方法是找到一种将WebBrowser控件的内容保存在将c#应用程序转换为PDF文件。我还没有找到它!