2010-05-20 16 views
0

所以这里是交易。我为网站创建了一个蜘蛛程序,它可以扫描所有产品页面并记录产品数据。我使用C#和WebClient库来下载HTML字符串。我要抓取的网站必须专门制作,因为从WebClient.DownloadString()接收的HTML与在浏览器上访问HTML时查看HTML源代码时获得的HTML不同。这似乎是故意的,因为我无法得到的唯一信息就是价格。WebClient.DownloadString()不生成确切的HTML

有没有人知道这个问题的解决方法或任何人都可以解释发生了什么?谢谢。

+0

如果我们能看到代码中出现什么差异,这将有所帮助。例如,“查看源代码”显示了什么以及您的机器人向您展示了什么? – EAMann 2010-05-20 19:53:24

+0

您能否提供相关网站的网址? – 2010-05-20 19:55:16

+0

就我个人而言,我会使用'WebRequest' /'WebResponse'来检索细节。 或使用DownloadData并使用正确的编码将'byte []'格式化为字符串。 – Aren 2010-05-20 20:01:05

回答

1

它可能使用用户代理字符串来决定发送什么内容。示例here显示了如何设置用户代理标题。

+0

OP在这里,我能够找出原因。显然,该网站使用AJAX功能获取敏感数据。当我使用WebClient.DownloadString()进行屏幕抓取时,我得到了HTML文档,但不是获取这些敏感信息,而是得到了一段AJAX应该在的位置。这有帮助吗?我将发布为包含在HTML – 2010-05-20 20:26:36

+0

的AJAX代码<! - AJAX产品详细信息面板开始 - >

\t \t 2010-05-20 20:27:00

+0

ajax调用由showProductDetails函数进行,您需要查看该函数的源代码以了解如何刮取数据。 – 2010-05-20 20:38:23