php - 如何在 PHP 中获取 div 中的所有链接
问题描述
我想从另一个网站打开一个页面,并提取div of class="layout-2-2"
此页面中的所有链接(href)。如何使用 PHP 做到这一点?
我想复制此网页 layout-2-2 中的每个链接。
这是我的实际代码
$doc = file_get_contents('https://url/');
$xpath = new DOMXpath($doc);
$liens1= $xpath->query('//div[@class="layout-2-2"]');
$links = [];
foreach($liens1 as $lien1) {
$arr = $lien1->getElementsByTagName("a");
foreach($arr as $item) {
$href = $item->getAttribute("href");
$text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
$links[] = $href;
}
}
echo($links);
解决方案
使用 xpath 查询://div[@class=\"layout-2-2\"]//a/@href
获取父节点、子节点和子节点属性。
$html = file_get_contents('https://url/');
$links = [];
$document = new DOMDocument;
$document ->loadHTML($html);
$xPath = new DOMXPath($document );
$anchorTags = $xPath->evaluate("//div[@class=\"layout-2-2\"]//a/@href");
foreach ($anchorTags as $anchorTag) {
$links[] = $anchorTag->nodeValue;
}
print_r($links);
推荐阅读
- c# - Unity:如何仅在 y 轴上平移场景?
- python - Pandas 中的内部和外部合并,indicator=True
- python - 移动自动化测试:将在PC上显示
- python - 烧瓶将文件写入自定义目录
- php - 更新产品删除错误刚刚创建的数量
- vue.js - 使用 Vuex 加载状态的最佳时间是什么时候
- here-api - 在 HERE 自动提示端点中找不到格陵兰岛 Aasiaat
- c# - endpoints.MapControllerRoute() 上的 RequireAuthorization() 不起作用,每个请求都通过
- progressive-web-apps - PWA + IndexedDB + Angular 9 网站集成问题
- arrays - 边界元素的索引 3D 矩阵