【发布时间】:2014-10-23 20:22:16
【问题描述】:
我有一个 C# 应用程序来访问来自第三方网站的数据。我正在使用 WebClient 并调用 DownloadData 并处理字节(DownloadFile 会产生类似的结果)。
直到最近,这还不错。现在,通常情况下,我得到的不是所需的 XML 文件,而是类似于以下内容的 html 页面:
<!-- _localBinding -->
<!-- _lcid="1033" _version="" -->
<html>
<head>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" />
<meta HTTP-EQUIV="Expires" content="0" />
<noscript>
<meta http-equiv="refresh" content="0; url=/_layouts/spsredirect.aspx?noscript=1" />
</noscript>
<script language="javascript" src="/_layouts/1033/init.js"></script>
<script language="javascript" src="/_layouts/1033/core.js"></script>
<script language="javascript">
var requestedUrl = escapeProperly(window.location.href);
STSNavigate("/CustomErrors/ErrorPage.aspx?oldUrl=" + requestedUrl);
</script>
</head>
<body></body>
</html>
我很困惑为什么这会从持续工作变成持续给我带来问题。有时,我仍然可以获得预期的 XML 文件。您知道这个问题可能是什么以及如何解决它吗?
值得注意的是,如果我在浏览器中手动单击下载链接,则会在文件下载之前弹出并关闭一个 javascript 窗口。我正在使用 WebBrowser 拦截该弹出窗口的非静态 URL,并将该链接(和标头/cookie 信息)传递给 WebClient。该链接类似于https://foo.bar/Something.axd?Session=1234vv1234Format=XML
感谢您的宝贵时间
【问题讨论】:
标签: c# web-scraping screen-scraping webclient