PHP 在浏览器中卷曲 return 与 URL 不同的结果
PHP Curl return different results from URL in browser
我正在使用 PHP Curl 代码:
curl_setopt($ch, CURLOPT_URL, 'https://www.segundamano.mx/anuncios/ciudad-de-mexico/alvaro-obregon/florida/renta-inmuebles/departamentos?precio=0-10000');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0");
$uagent = 'Mozilla/5.0 (Windows NT 6.1; rv:22.0) Firefox/22.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/36.0.1985.125 Chrome/36.0.1985.125 Safari/537.36';
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
我的问题是.. 为什么 PHP Curl 给出的结果与在浏览器中搜索 URL 的结果不同?
PHP Curls 给出了一个很大的 BODY CONTENT... 这条线...
西班牙语... "No encontramos resultados para tu búsqueda..."
英文.....您的搜索没有结果...
这个 URL 会发生什么?
我怎样才能 CURL 并通过代码读取此 URL 并在浏览器中获得真实结果?
请帮帮我!
谢谢!!!
因为JavaScript是万恶之源。网站在您成功加载页面后AJAX得到您想要的搜索结果.只需打开浏览器检查工具的 "network" 选项卡,然后查看四处飞来飞去的请求。
有趣的部分:该网站确实有一个(看似授权的)API它也可以说话,也许你可以试试? https://webapi.segundamano.mx/nga/api/v1.1/public
您提到的 link 是一个单页 Web 应用程序或网站,它通过动态重写当前页面而不是从服务器加载整个新页面来与用户交互。
另外,本站使用的是vue js
请在下面找到 link 了解更多详情。
https://en.wikipedia.org/wiki/Single-page_application
https://vuejs.org/
我正在使用 PHP Curl 代码:
curl_setopt($ch, CURLOPT_URL, 'https://www.segundamano.mx/anuncios/ciudad-de-mexico/alvaro-obregon/florida/renta-inmuebles/departamentos?precio=0-10000');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0");
$uagent = 'Mozilla/5.0 (Windows NT 6.1; rv:22.0) Firefox/22.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/36.0.1985.125 Chrome/36.0.1985.125 Safari/537.36';
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
我的问题是.. 为什么 PHP Curl 给出的结果与在浏览器中搜索 URL 的结果不同?
PHP Curls 给出了一个很大的 BODY CONTENT... 这条线... 西班牙语... "No encontramos resultados para tu búsqueda..." 英文.....您的搜索没有结果...
这个 URL 会发生什么? 我怎样才能 CURL 并通过代码读取此 URL 并在浏览器中获得真实结果?
请帮帮我! 谢谢!!!
因为JavaScript是万恶之源。网站在您成功加载页面后AJAX得到您想要的搜索结果.只需打开浏览器检查工具的 "network" 选项卡,然后查看四处飞来飞去的请求。
有趣的部分:该网站确实有一个(看似授权的)API它也可以说话,也许你可以试试? https://webapi.segundamano.mx/nga/api/v1.1/public
您提到的 link 是一个单页 Web 应用程序或网站,它通过动态重写当前页面而不是从服务器加载整个新页面来与用户交互。
另外,本站使用的是vue js
请在下面找到 link 了解更多详情。
https://en.wikipedia.org/wiki/Single-page_application https://vuejs.org/