首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript和ajax技术下载/提取网站内容

使用javascript和ajax技术下载/提取网站内容
EN

Stack Overflow用户
提问于 2014-05-15 08:58:52
回答 2查看 1.7K关注 0票数 0

我想用C#编写一个小程序,这样就可以以不同的方式显示来自网站的一些数据。系统托盘通知和不同的观点等等.

所需的数据在浏览器中显示为普通文本,可以将复制/粘贴作为文本复制到编辑器中。当我使用wget这样的工具时,我可以下载网站的html源代码,但我注意到所需的数据隐藏在javascript (和ajax?)中。

有没有办法从脚本/命令行/c#/java或类似的地方下载网站的真实内容?某种Javascript解释器,解决了数据和我得到的网站作为文本输出?

我还有什么其他的想法可以提取数据吗?

谢谢

编辑2:

问题解决了。见答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-17 17:03:20

终于..。我做了一个PhantomJS脚本,完全可以满足我的需要.

它允许登录到站点,然后执行javascripts来显示内容。

此外,我还添加了一个命令来生成网站的屏幕截图,以便更容易地进行调试。

多亏了RolandKrüger和remy,他们帮助我们找到了解决方案。

我们可能需要稍微修改一下脚本,但我认为它会有所帮助;)

代码语言:javascript
复制
var page = require('webpage').create();

page.onConsoleMessage = function(msg) {
    console.log(msg);
};

page.open("http://www.somewebsite.com", function(status) {
    if ( status === "success" ) {
        page.evaluate(function() {
              document.querySelector("input[name='MAIL_ADDRESS']").value = "mymail@gmail.com";
              document.querySelector("input[name='PASSWORD']").value = "mypassword";
              document.getElementsByName("LOGIN_FORM_SUBMIT")[0].click();
              console.log("Login submitted!");
        });
        window.setTimeout(function () {
            page.render('screenshot.png');
            var ua = page.evaluate(function () {
                return document.getElementById('AnElementIdOnMyWebsite').innerText;
            });
            console.log(ua);
            phantom.exit();
        }, 5000);
   }
});
票数 1
EN

Stack Overflow用户

发布于 2014-05-15 09:04:22

基于Webkit的浏览器(如Google或Safari)有内置的开发工具。在Chrome中,您可以打开它菜单-> Tools ->Developer Tools。“网络”选项卡允许您查看有关每个请求和响应的所有信息:

在图片的底部,您可以看到我已经将请求过滤到XHR --这些都是由javascript代码发出的请求。

提示:每次加载页面时,日志都被清除,在图片底部,黑点按钮,左到清除按钮,将保留日志。

在分析请求和响应之后,您可以从web爬虫中模拟这些请求并提取有价值的数据。在许多情况下,获得数据要比解析HTML更容易,因为该数据不包含表示逻辑,并且被格式化为由javascript代码访问。

Firefox也有类似的扩展,叫做firebug。有些人会认为firebug更强大,但我喜欢webkit的简单性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23673617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档