Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我能';你不能通过CURL-PHP获取链接以获得实际内容,而不是手动访问它吗?_Javascript_Php_Html_Curl_Encryption - Fatal编程技术网

Javascript 为什么我能';你不能通过CURL-PHP获取链接以获得实际内容,而不是手动访问它吗?

Javascript 为什么我能';你不能通过CURL-PHP获取链接以获得实际内容,而不是手动访问它吗?,javascript,php,html,curl,encryption,Javascript,Php,Html,Curl,Encryption,我试图从一个站点提取数据,但似乎当我手动访问该站点时,我获取了该站点的内容,但当我试图通过CURL访问该站点并希望检索该数据时,我获取了其他内容,而我根本没有获取该站点的内容,那么是什么导致了这种情况 以下是网站链接: 我使用curl时得到的内容如下: <div id="e_content" class="hide">{"ct":"F8WpFx0ojTx8r3KnG\/+3r1awNaWXVxuscAZUk\/UzDKHAKCPDFaTDfBXxQI6jCbvTOkRRdmORMzZ

我试图从一个站点提取数据,但似乎当我手动访问该站点时,我获取了该站点的内容,但当我试图通过CURL访问该站点并希望检索该数据时,我获取了其他内容,而我根本没有获取该站点的内容,那么是什么导致了这种情况

以下是网站链接:

我使用curl时得到的内容如下:

<div id="e_content" class="hide">{"ct":"F8WpFx0ojTx8r3KnG\/+3r1awNaWXVxuscAZUk\/UzDKHAKCPDFaTDfBXxQI6jCbvTOkRRdmORMzZGQffGW14m0Z2v53m0kldAyyMrByjAVX0k9UOla+VseAw6b+XRLZ4Jfd5EErjcjw+txG7nIPmGoP\/eC4lIZsNc63Zt5utbylIGF6x+Z+yneF1VqB65f5u\/IIds04HB6CZlpG9Ii5n0XrybFFN6yM4C1gWsf2TlFNQD3GHYeAbadQ3m4AOLc5X1zyOmz6Z3\/RIVu1Xy6KdA+tmLACgZ0iPchD1eAnhVn+2yNGA1aSAjb47FwqU2Tnpzp\/6Ha9ZLoFYTch3fgtLnfRm1ds3CmrIrgTsEMRGxtAJAkDSDTTTdNeS1\/V6UUTq\/si2KHeNv\/qOKWa\/Rmm7TU9kh7q0jQGY4QMBQUx7OQOqxwk6H7BhQd\/wOAT94qiW\/x+ika0V70oKE3\/EMGbngxexMoqpJ1Q8VEGJahCMl2aUg9Za4PmrqjEuTW5bK22tZeovKkOK\/3Tjdc2WFA+yVFLZXmxb89QOv6C1x79Cr4S+OnTebyd7PJxekvo0hqzcT6Le6e3WjUKNp1wBtL9QHCzlHWQmjnvvcKxOdsultuG7TP2I3sWlpROCRUm5kkEaH38kWiSuA6484rRoRbDLHkkdY1Ylt2zV0\/RX2gMmNQP3dSdlkdGZGkaXn6fjVkoSLtLfUiAyhtpc4wHG3zkwyE4aepQDR0xC+PFVOdiGHpKwhXUyUOCtHf9wU65thKjA6lvxW4D335jzCPz7lZ4P\/lrzMl9gU3moaoLQJs7HpN473ZxkgaibYc93YVUkHKHUId1KYxT1IJtMzFbg90drrnYDLxzIi8DYUuW+dmbrpV5WVyHcpng3RjWehetL62PheG5ToHX9Qfz3CpSrnbea\/BkXBML\/+UCR7purvYAdZup\/W8E107TYPHaXTzIbshtgEmJueJccUp7xDa+qE3VxDdsidLoUMXpX5IdPpgvfkgCrJn72ZPqPSq+R+ZrnAYeWWU+iBb31efMhziplzFkmlcLvh6yQwCpa8GrXFkNxuIiQKPJ2J6wPJcXxHuN0d9SfLyotFUe4AhPCPaJ\/QnTXB2UTvdsduM0blswoJbslAH51xuFjR89xho22hrnr08QVc68WhAIQKgru4MvXKsjYvoMC6YvTZCZ7xBVlsOu+snPDTUlNUp4+0twEfmtwaL5MHnV2sNY5\/TAFwmZfgnlAhnGc8+8DytuHHRyX2DIgsH45YBb4tAn0VpzUtZFdwDfJ7Dlwkq9oFoI\/HBhV5DsZ1MIlrx76A2Bqih3FQfjZRkEohQdV6YOPUUO7lRS+kC9Tyd4NI+q4HwQ2oYCMDhStGeOyMYq\/06E9a5MAMlxywQaKiS+FgyXk7sBO9bIGnlVHqjGDG0o7bQDtl6XjnAZ+su9tf5Dl9KkcG5cRfnUn5JTgg18jBkYJBMG5ygiDcfgrY4pPS56whxSJZ6aCjabJ9XvlDXLvIiXHcoBrfwPy9BEF75qXJflmvrNR4KyxOrU5zT3t\/v9RjdFapvxW1ZkQEWQsJJIHCOo+tYckPyIiVuASJzPw9aA22F8rF\/OhvMQ2k0QHy9\/95u+CjEJ8Jr0roF5lVHWxZS3CpzhgeuxPEouhO+CaatthxwQlcGJpff1DdCVkNWiie02Us6s8wq0NC7\/il04gYYcy7Q9b7Qqx4PqmrJRWKoIe7TsMHCYezrTGKKWDTNbPWAor3TnHO7sEqRbjE7p0LM7WF7KWOaxHVPR1uo\/v25fP638eU6+V7K4j4alQY7ut9PlMdQQVe1Wy7E\/xYv85LYXpPvOoaotHHydH6FFqrMq\/6Qe2KAaCvG6rusIYeTUyB379fzgulYQ1H8gkoE6axwiEv9+MqZG1jKLGNV2\/xfJ7ttTm+wUa2jR0R\/UE\/BO1YF7sFHtGey54KArO81\/Z0eksDuIkYSir+IxpP8pCpPewQPmQbD+UcSzr96qOLx\/SwQNVJ5JnQK0ozubBWLlFqktgpk7bIc\/PQ+afpGhFds3+tz4RtkjRmo4borOkLnb\/VdZ1LIE0zqb3YPahmO3UW8Cm3n6wSZgIj0aSZW0iiC4D\/NvPblBuiSYA45wiYx4cgv21boUxF7Q815n26K6+W3Se74EAngsh+qa4VNwJzTz5t78MI9QU\/5W03JLfh\/SUwCPyld60V0hvi610BSLHiadRRSPawp8xTRdXaQYY4wD46R\/xuN0fS22ycfvMI7x9qfdFiRpL+uUELAwS3mY+Xwu1TxhNdVTy1MCLclmLEZpCDwSx5gLFfbPcgTle\/ZuK4ljxpXsMWG1act2q3kP51Up3vwFARMx2VPnp29oMxgFPxyocc2AQLxSTFixtp3rBXlQEdyqHf25NL44jPiXHeXjoSX8w8KuVbSOOZFvUC4qZpssoB51HF7bAlrcUalKKL+DdDZwJjoYIh88YgwsG2MSlUHusVxDSJ76Lwf9oTPLEMU6VFlxcouvXrTNI21Gs8FqGMMVFh+gZcabzIKUM12bY0Uruuzt6MMuAi+zSiXOlc9LRPT581GLsfAc4q9dEhbyQPD\/LEm90nKEOJqmRhb\/gfqdth1eo0v6YHb+8yu7fEY6ZlpWlPA1Jh\/Zu+pPIKjJMQahCmHK883bObE3ahZLgehFQJ7wZCgmSzu9biNdOYGFK6kiwr7aSeJQSUoZdR5AjV2oUrk3WYPJ27wOES2raxnfTMwB1BTzDMGvGLdoD2PyjD5XU68uJimBWj5eVK7Ug1jH\/lv2OmobN7KPz3iXzH\/8RYV7gBVcFOHAKx4dZqyvshH0KOsVvInymD87\/ScG5Nz+\/HW7f1VmvvONq8xs4xjIRyeyj1CNCrM1f1Gffwku\/PM3KI171U+bs+AfSxuET7UXzczmz+8iR17I5T0fVdQRmej+14aC0\/2FU6+5Dx2ypK0KWSmlj5Z2gRT3ft1sxppzlc0IRtiDToXmnxaXqpdrfj+wNITSiBH\/mVTAGeWrfizjkA9hkmPlGZ2xY1PyD3Sjxs3kpwtepic5ucyl6wyTvK2gLho264iuSg+brSEzGuGb20GIVjVGcEAPQ3okbyc3isUXD1Z0UVG\/evse\/42iNko+yooyeyXtE2GzK0rxVgpnwQC\/TbJ7YegMZhj7kK0+OlX772ELCIaESc2pnZsvZTGELQ2nKefvJFATLl+NSJiYH9HF14s+c9mxzAOqpX\/gXHRzXRo2Wd9+Zk6PBN9KYREqBMUXzjNUM1fNnzlqfBUCsSQXMA\/xia+RyY0HG7GMLmguA\/aR8NsoiFhLakANK4Q0HQf+tf5NT3\/rTrMyz+nNsNPyWLoljcQrCWoTBjbkIKA\/+Rz6+z\/RJyghm3PNN2fYl5D4Y0LHKyjV6gAWbrm7Bt15YQs4Qb+tGcZwICvOvpjy1zHGqxl\/wVoKGjlDHSM67VuPV44nfaxNMwG5ar0BoLzkFkzEkhBPYo\/oRdJur67lOw6GVvUNJ8VULBNBz0XUo5CPXjFsEEcV5NB\/ZeUBt8eOcLRY4hv2bYHP3gy2uIRnTbzPw0fdwnkSu16wzbpUJe90jPLCtWQHXQTGF3SZdxxIqMyveWHHkqAORsEIsvyxTzUfgJ77u4xY\/C1qFtTBrTsy3ahh3oYb1cE93PAWvQUT7ycsQ0FUEcFqU6BjVflwcL2UtmeCdzuGKSWrMNhLB+TB5\/vFgk4qP20RQk+EN7YtXPiTu2SA7EqDaqCxwTbY8XoMRv6\/drlxRrMnu8Ogdr2CmNdceWN9DydNENOEKD8v2ne4uCr4wCu82dyvZkNe0jPiiPkDcQabx\/e9TnQlEf0hHlFM7Udee7nEZVuO4iTGPPwXPv+tTj2mOn2d4x0zvfUaSAy3tUNME2ukqrC4htykV+mWLlFlL\/fKDpkv4tnw+Odc2VWnCDvHEFVhePZJH8qfS3dgl17vp3uUqV15uBIABv2FF2CaSu2Hr7SJsret6M4IIGjGuZeVnJBPLMNZiA5DT5tradwKDR0Vkh4iGPssR3PoyMCq2+ZyzGBGy1rtk+6UCW6NjMIVIUGiwNiNNtPOEMf09XFN0+lOxYiyQwTJoH1Ipwq51\/yiuyG+V0Jn+xfUWjcXUaNwQ8QhScMnbcWd\/FMEeNtI1a+fvjJhwyEj206x6jZYX\/","s":"5e8c43f3cf7698f5"}</div>

可能是该网站查看用户代理HTTP头。尝试使用
-a
-参数设置不同的用户代理,如下所示:

curl -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://yahoo.com
或使用PHP:

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
cURL不执行JavaScript

更新: 而且似乎确实需要执行JavaScript来“解包”内容。因此,其他答案之一所建议的无头浏览器更合适

克鲁姆答复的增编 在PhantomJS环境中使用JavaScript获取文档“解包”版本的代码示例: (摘自:)

或者使用(实际上只使用PhantomJS可执行文件)(示例取自Jonnnyw的GitHub页面):


可能是此网站查看用户代理HTTP头。尝试使用
-a
-参数设置不同的用户代理,如下所示:

curl -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://yahoo.com
或使用PHP:

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
cURL不执行JavaScript

更新: 而且似乎确实需要执行JavaScript来“解包”内容。因此,其他答案之一所建议的无头浏览器更合适

克鲁姆答复的增编 在PhantomJS环境中使用JavaScript获取文档“解包”版本的代码示例: (摘自:)

或者使用(实际上只使用PhantomJS可执行文件)(示例取自Jonnnyw的GitHub页面):



您可能会使用无头浏览器之类的程序来检索页面内容,同时允许JavaScript执行其操作。

您可能会使用无头浏览器之类的程序来检索页面内容,同时允许JavaScript执行其操作。

如何在PHP中执行此操作?@UmairShahYousafzai补充道CURLOPT_USERAGENT thingy for PHP。还是一样,什么都没发生过@UmairShahYousafzai对不起。你确实应该使用klumme建议的无头浏览器来解包/解密它。如果我打算在在线托管服务器上运行它,那么我如何才能做到这一点,即无头访问?如何在PHP中做到这一点?@UmairShahYousafzai为PHP添加了CURLOPT_USERAGENT thingy。仍然没有发生同样的事情@UmairShahYousafzai对不起。你确实应该使用klumme建议的无头浏览器来解包/解密它。如果我打算在在线托管服务器上运行它,那么我如何才能做到这一点,即无头访问?最后一个代码框中的Javascript代码仅用于将你重定向到主页,如果页面加载在框架中。转到并将整个
eval(…)
表达式粘贴到此处查看。JSBeautifier将为您清除代码。@Neon:我对JS不太熟悉,请您帮我检查一下。。!向我们展示你的CURL方法。我相信你可以将JavaScript代码翻译成PHP。看起来可行。@Umair Shah Yousafzai:检查什么?我只是不想将整个代码粘贴到注释中,这就是为什么我将您引导到该页面,以便您可以自己检查它。但是我已经解释了代码所做的一切。它与解码粘贴在第一个代码框中的JSON数据无关。最后一个代码框中的Javascript代码仅用于将页面重定向到主页面(如果页面加载在框架中)。转到并将整个
eval(…)
表达式粘贴到此处查看。JSBeautifier将为您清除代码。@Neon:我对JS不太熟悉,请您帮我检查一下。。!向我们展示你的CURL方法。我相信你可以将JavaScript代码翻译成PHP。看起来可行。@Umair Shah Yousafzai:检查什么?我只是不想将整个代码粘贴到注释中,这就是为什么我将您引导到该页面,以便您可以自己检查它。但是我已经解释了代码所做的一切。它与解码粘贴在第一个代码框中的JSON数据无关。有些代码可能会很有用,因为我不知道它是如何工作的@UmairShahYousafzai网站上有很多示例,您可以下载PhantomJS并使用
PhantomJS example-script.js运行它
@UmairShahYousafzai网站上有很多示例,您可以下载PhantomJS并使用
PhantomJS example-script.js
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
var page = require('webpage').create();
page.open('http://google.com', function () {
  console.log(page.content);
  phantom.exit();
});
<?php

use JonnyW\PhantomJs\Client;

$client = Client::getInstance();

/** 
 * @see JonnyW\PhantomJs\Http\Request
 **/
$request = $client->getMessageFactory()->createRequest('http://jonnyw.me', 'GET');

/** 
 * @see JonnyW\PhantomJs\Http\Response 
 **/
$response = $client->getMessageFactory()->createResponse();

// Send the request
$client->send($request, $response);

if($response->getStatus() === 200) {

    // Dump the requested page content
    echo $response->getContent();
}