WP_Remote_Get()和Java脚本/无脚本情况

时间:2014-05-02 作者:Greeso

我正在使用wp_remote_get() 访问网络上的某些页面。但是,当我使用wp_remote_get(), 我收到的响应是一个包含以下代码行的网页:

<body>
    <noscript>This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.</noscript>
</body>
因此,由于编程方式的原因,页面没有完全返回。是否有办法更改呼叫以便non-noscript 是否返回页面?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

该结果预计自wp_get_remote() 不包括Javascript引擎。

它应该提供与浏览器中的查看源代码选项相同的结果,并获取普通HTML文档。

看起来您尝试获取的页面正在头标记中加载Javascript文件以呈现内容:

<html>
    <head>
        <script src="/js/load-content.js"></script>
    </head>
    <body>
        <noscript>Your browser doesn\'t support Javascript!</noscript>
    </body>
</html>
所以你应该得到script 以及noscript 部分

你要找的是所谓的无头浏览。

如果要运行Javascript,可能需要查看以下解决方案:PhantomJS

PhantomJS是一个无头WebKit,可使用JavaScript API编写脚本。

[…]PhantomJS的一个主要用例是web应用程序的无头测试。它适合于在预调试挂钩中进行基于一般命令行的测试,并作为连续集成系统的一部分。

幻影有许多测试框架,如茉莉花、摩卡咖啡和奎特。

Alternatively: 尝试使用加载Javascript文件wp_remote_get() 并查看是否可以通过这种方式提取内容;-)

结束

相关推荐

Custom URl parameter

我有Wp博客,需要在分类页面上接收一个自定义参数,以过滤像我的规则这样的帖子。例如:http://mysite.com/category/teste?myvar=ABC如何从URL获取myvar?我在网上尝试了很多例子,但没有一个适合分类页面。谢谢