【发布时间】:2015-02-14 00:19:05
【问题描述】:
我在抓取似乎是使用 DWR 动态生成其所有内容的特定网站时遇到问题。页面源将少量 HTML 显示为“外壳”,其中不包含我想要抓取的链接。相反,我看到 POST 请求的响应仅包含 Javascript:
throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
var a1 = {}; var a2 = {}; var a3 = {}; // ... etc.
a1.configs=a3;a1.defaultSite=true;a1.defaultValues=a4; // ... etc.
还有一堆东西,总共大约 150 行。
我知道这就是 DWR 的工作原理,但我想知道网络爬虫通常是如何解决这个问题的。有没有办法让它从 AJAX 的响应中执行 javascript,然后等待 HTML 完成编辑?
我觉得这与传统的 Ajax 请求不同,因为它们可能会返回 HTML,并且一旦 Ajax 请求完成,DOM 就会更新。或者,它们返回一些数据,页面的其余部分 Javascript 更新 DOM。但是,无论哪种情况,都无需在之后执行响应。
任何见解都将不胜感激。
【问题讨论】:
标签: javascript ajax web-crawler dwr