我想从网页中提取元素。
$html = file_get_contents($link);
该函数返回完整的html文件,我只希望内部和外部链接将它们保存在数据库中。
$sql = "INSERT INTO prueba (link, title, description) VALUES (?, ?, ?)";
//preparando los datos
$query = $pdo->prepare($sql);
//orden de ejecucion
$result = $query->execute([
$link,
$title_out,
$description
]);
在这里,我已经设法提取描述和标题,并且设法将它们放置在数据库中,但是我想提取所有外部和内部链接。一列中的内部链接,另一列中的外部链接。我已经在数据库中创建了这两列。
答案 0 :(得分:0)
我建议使用DOM-Parser库,例如:
解析HTML,然后仅“查询”所有锚点(this.updateCart(1, {quantity: 2});
标签)。
例如,与尝试使用正则表达式自己提取它们相比,容易出错的可能性要小得多。
答案 1 :(得分:0)
为此,我建议您使用提供帮助功能的开源库来导航到DOM。没有这个,您将不得不维护更多的代码。如果要管理对多个页面的抓取,则每次页面更新时都必须更新正则表达式查询。
你不想要那个^^'
“ Goutte”库中的一个示例(希望您使用的是+ PHP 5.5)
$links = [];
$crawler->filter('a')->each(function ($node) {
var_dump($node->attr('href'));
$links[] = $node->attr('href');
});
$links
现在包含页面中属性中的所有链接
有关节点移动的更多示例,请参见this link
使用数据库逻辑来持久存储此数据
很抱歉,如果Goutte的代码有错误,我不会经常使用它