无法从网页上抓取某项

时间:2018-10-05 11:56:55

标签: php curl web-scraping css-selectors simple-html-dom

我已经在 php 中编写了一个脚本,以抓取 电话号码 电子邮件地址 。当我执行以下脚本时,会得到 电话号码 ,但如果是 电子邮件地址 ,我会得到 电子邮件 的文本。

我要关注的两个字段位于该网页的标题Sterling Systems & Control Inc.下。

This is the site address

我尝试将它们带到目前为止:

<?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

这是它们在该站点中的可见方式: enter image description here

1 个答案:

答案 0 :(得分:1)

你不能。

电子邮件地址按钮将打开一个对话框,您可以使用该对话框将电子邮件发送给相关的产品所有者(或其他)。电子邮件地址很可能存储在数据库中,仅当您实际通过表单发送电子邮件时才可以检索。

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