php - 如何使用 DOMparser 使用 getNamedItem 解析 url
问题描述
我正在尝试获取 URL,DOMparser
但停留在getNamedItem
如何解决此问题?我在这里缺少什么?我欢迎任何想法!
$url = 'https://www.31sumai.com/search/area/kansai/result/?area=16,17,18';
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$DOMParser = new \DOMDocument();
$DOMParser->loadHTML($html);
$mainlink = null;
$allPTags = $DOMParser->getElementsByTagName('p');
foreach ($allPTags as $ptag) {
$class = $ptag->attributes->getNamedItem("class");
if ($class && $class->nodeValue == 'c-name') {
$main = $ptag->attributes->getNamedItem("href");
if ($main) {
$mainlink = $main->nodeValue;
}
}
}
var_dump($mainlink);
它返回 null 但已经检查了网站,该标签中有一个 URL。
解决方案
$url = 'https://lions-mansion.jp/area/kansai/';
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$DOMParser = new \DOMDocument();
$DOMParser->loadHTML($html);
$mainlink = null;
$allPTags = $DOMParser->getElementsByTagName('p');
foreach ($allPTags as $ptag) {
$class = $ptag->attributes->getNamedItem("class");
if ($class && $class->nodeValue == 'areapageDetailList_item_btn_hp') {
$links = $ptag->getElementsByTagName('a');
foreach ($links as $link) {
$hrefAttr = $link->attributes->getNamedItem("href");
if ($hrefAttr) {
$mainlink = $hrefAttr->nodeValue;
}
}
}
}
echo $mainlink;
推荐阅读
- android - Kotlin - 如何在映射和过滤时跳过异常条目
- android - 如何使用全选复选框选择包含复选框的列表视图的所有行
- r - 用上一行中的值替换特定值
- node.js - 收到错误 UnhandledPromiseRejectionWarning
- json - 有没有办法从 Couchdb 中获得更干净的 JSON?
- java - 匹配最接近的组,我真的无法形容
- android - 当应用程序处于前台时需要关闭点击通知 - android
- java - 如何在 Mockobject 的帮助下检查真实对象的空值?
- node.js - 在 Google App Engine 上部署后 Node Server 不会自动重启
- django - 如何向 Django Oscar Order 模型添加字段?