[英]Changing the Base URL for crawled links
我正在從一些具有簡單HTML DOM的網站上爬取鏈接,但是我遇到了很多網站使用相對鏈接而不是完整URL的問題。
因此,發生的事情是我搜尋了這些鏈接,並將它們直接輸出到我的網站上,但是每個鏈接都指向www.mydomain.com/somearticle而不是www.crawleddomain.com/somearticle 。
我做了一些挖掘,發現了BASE標簽 。 由於我從多個站點進行爬網,因此我不能只為我的網站設置基本標記,因為它會隨着輸出的變化而變化。 因此,我正在搜索僅具有特定div的基本標簽。 我偶然發現了這個答案 。
但是,我嘗試手動添加如下所示的基本url,但這沒有用:
echo ('http://www.baselink.com/' . strip_tags($post, '<p><a>'));
我還嘗試了第二種方法, correct_urls($html, $baseurl);
的correct_urls($html, $baseurl);
功能,但顯然不存在。
有沒有辦法在PHP的for循環中將基本URL更改(或附加)到相對URL?
這是我正在使用的代碼:
<div class='rcorners1'>
<?php
include_once('simple_html_dom.php');
$target_url = "http://www.buzzfeed.com/trending?country=en-us";
$html = new simple_html_dom();
$html->load_file($target_url);
$posts = $html->find('ul[class=list--numbered trending-posts trending-posts-now]');
$limit = 10;
$limit = count($posts) < $limit ? count($posts) : $limit;
for($i=0; $i < $limit; $i++){
$post = $posts[$i];
$post->find('div[class=trending-post-text]',0)->outertext = "";
echo strip_tags ($post, '<p><a>');
}
?>
</div>
</div>
然后執行以下操作:
include_once('phpuri.php');
$uri = phpUri::parse($target_url);
foreach($html->find('a[href]') as $a){
$a->href = $uri->join($a->href);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.