首页 > 解决方案 > 无法从网页中抓取特定项目

问题描述

我在php中编写了一个脚本来从网页中抓取电话号码电子邮件地址。当我执行以下脚本时,我会得到电话号码,但如果是电子邮件地址,我会得到这段文本Email

我之后的两个字段位于Sterling Systems & Control Inc.该网页的此标题下。

这是网站地址

到目前为止,我尝试让它们:

<?php
    include "simple_html_dom.php";
    function curlGet($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $results = curl_exec($ch);
        curl_close($ch);
        $dom = new simple_html_dom();
        $dom->load($results);
        return $dom;
    }
    $data = curlGet('https://us.kompass.com/a/grinding-machinery-and-equipment-for-the-food-industry/49030/');
    foreach($data->find("div.list-buttons-container") as $item){
        $phone = $item->find("#freePhone--US947504",0)->value;
        $email = $item->find("[class='coordonneesItemLink'] .coordinate-item-text",1)->innertext;
        echo "{$phone} {$email}<br>";
    }
?>

我此时的输出(而不是电子邮件地址,我只得到以下文本):

+1 8156250852 Email

这是它们在该站点中的显示方式: 在此处输入图像描述

标签: phpcurlweb-scrapingcss-selectorssimple-html-dom

解决方案


你不能。

电子邮件地址按钮会打开一个对话框,允许您向相关产品所有者(或其他任何人)发送电子邮件。电子邮件地址很可能存储在数据库中,只有在您通过表单实际发送电子邮件时才会检索到。

如果电子邮件地址不在页面中的任何位置,则您实际上无法获取它。


推荐阅读