php - 无法从网页中抓取特定项目
问题描述
我在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
解决方案
你不能。
电子邮件地址按钮会打开一个对话框,允许您向相关产品所有者(或其他任何人)发送电子邮件。电子邮件地址很可能存储在数据库中,只有在您通过表单实际发送电子邮件时才会检索到。
如果电子邮件地址不在页面中的任何位置,则您实际上无法获取它。
推荐阅读
- javascript - jQuery 更改事件不会在我的浏览器中触发(在 jsfiddle 中会触发)
- linq - linq to sql - 处理 XML 类型的空列
- java - 从 mainactivity 设置新活动的操作栏
- jquery - 如何使用javascript限制用户在文本框中输入2018年以上?
- c++ - 如何创建 128 位整数文字
- sql - 使用切片 IN 子句的 Golang db 查询
- javascript - “警告:试图删除一个不存在的孩子” 为什么我在 React Native 中收到此警告?
- windows - Glassfish 声称该港口已被占用。Netsat 不同意
- javascript - SAPUI5 - [50053] - 不完整的维度绑定
- python - 如何根据 HTML 结构将文本分组?