我想要使用simple_html_dom在google translate编号为result_box
的div的内容,但它不返回任何内容。我试图返回另一个div的内容,它的工作完美。看起来问题就在于那个div。
result_box
是翻译将出现在的div。获取谷歌翻译div的内容在谷歌翻译不起作用
这里是我的代码
$googleSearch="the contente i want to translate";
$googlePage="https://translate.google.com/#en/ar/$googleSearch";
$Chtml = file_get_html($googlePage);
$gt = $Chtml->find('#result_box ',0)->plaintext;
echo '<br>'.$gt.'<br>';
可能是什么原因?我该如何解决它?
如果这不能用simple html dom
完成,有没有其他方法可以做到这一点?
请注意,我不希望使用谷歌翻译API
你不能得到这个信息这种方式。如果您在浏览器中使用调试器,则会看到从https://translate.google.com/#en/ar/$googleSearch网址获得的html会返回空的result_box。 result_box稍后将从AJAX调用中填充。 – axxis
@axxis所以我需要找到AJAX调用并打印它在我的PHP脚本? –
我想是的。当然,谷歌翻译使用的JavaScript是压缩的,所以它不会那么容易。我在浏览器的调试器中看到,在请求主页之后,有一个单独的请求:https://translate.google.com/translate_a/single?client=t&sl=en&tl=ar&hl=zh-CN&dt=bd&dt=ex&dt= ld&dt = md&dt = qca&dt = rw&dt = rm&dt = ss&dt = t&dt = at&ie = UTF-8&oe = UTF-8&source = bh&ssel = 0&tsel = 0&kc = 1&tk = 521168 | 823703&q = $ googleSearch并返回带翻译的JSON文件。 – axxis