【问题标题】:Privacy Crawler隐私爬虫
【发布时间】:2020-11-05 15:24:37
【问题描述】:

我需要你的帮助,谁能解释一下为什么我的代码在 zoho.com 网站上找不到 a-tag 隐私?

我的代码在其他网站上很好地找到了“隐私”链接,但在 zoho.com 网站上却没有

我使用 symfony 爬虫:https://symfony.com/doc/current/components/dom_crawler.html

// Imprint Check //

function findPrivacy($domain) {

 $ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13';
 $curl = curl_init($domain);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
 curl_setopt($curl, CURLOPT_USERAGENT, $ua);
 $data = curl_exec($curl);

 $crawler = new Crawler($data);

 $nodeValues = $crawler->filter('a')->each(function ($node) {

     if(str_contains($node->attr('href'), 'privacy-police') || str_contains($node->attr('href'), 'privacy')) {
         
         return true;

     } else {
         
         return false;

     }

 });

 return $nodeValues;
 
}

如果您查看 zoho.com 的源代码,您会看到页脚是空的。但是在网站上,如果向下滚动,页脚不会为空。

我现在怎样才能找到这个链接隐私?

【问题讨论】:

标签: php symfony web-crawler


【解决方案1】:

您的脚本找不到不存在的内容。如果您在浏览器中加载 zoho.com 页面并查看源代码,您会注意到甚至没有隐私一词。包含隐私政策链接的页脚可能是异步加载的,PHP 无法处理。

编辑:通过异步加载我的意思是使用像 AJAX 这样的东西,它只是客户端。由于 PHP 只是服务器端,它无法执行加载包含隐私政策链接的页脚所需的操作。

【讨论】: