以前、スクレイピングについて質問した者です。(以下URL)
https://teratail.com/questions/142411
スクレイピングをする際に相対パスを絶対パスに、ということでその際は「aタグの置換」にて解決したのですが、今度は相対パスではなく絶対パスで記載されているリンクにもaタグが置換されてしまいました。
相対パスの場合に「../」に置換するURL:http://other.com/
抽出しているリンクのURL:http://tetetete.com/news/index.html
自サイトで表示されるリンクのURL:other.com/http://tetetete.com/news/index.html
相対パスは絶対パスにしつつ、絶対パスにはURLを置換しない方法はありますか?
よろしければご教授いただけますと幸いです。
現時点でのソースコード
<!--PHP Simple HTML DOM Parserによる読み込み/http://other.comからトピックス3件を抽出--> <div class="topix"> <?php include('simple_html_dom.php'); $html = file_get_html('http://other.com'); $url = "http://other.com"; $abslink = dirname($url) ."/". $link; $base = "http://other.com"; echo '<div class="text">'; // 日付 $out = $html->find('#stage #contents .main-contents tr .list table tr td',0); echo $out-> outertext; echo ' '; // トピックスタイトル(ここにリンクが貼られる) $out = $html->find('#stage #contents .main-contents tr .list table tr td',1); echo str_replace('href="', 'href="'.$base, $out-> outertext); echo '</div>'; echo '<div class="text">'; $out = $html->find('#stage #contents .main-contents tr .list table tr td',2); echo $out-> outertext; echo ' '; $out = $html->find('#stage #contents .main-contents tr .list table tr td',3); echo str_replace('href="', 'href="'.$base, $out-> outertext); echo '</div>'; echo '<div class="text">'; $out = $html->find('#stage #contents .main-contents tr .list table tr td',4); echo $out-> outertext; echo ' '; $out = $html->find('#stage #contents .main-contents tr .list table tr td',5); echo str_replace('href="', 'href="'.$base, $out-> outertext); echo '</div>'; ?> <!--読み込みここまで--> </div>回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 02:26
2019/01/09 02:28
退会済みユーザー
2019/01/09 02:44
2019/01/09 02:48
退会済みユーザー
2019/01/09 03:07
2019/01/09 03:19
退会済みユーザー
2019/01/09 03:56
2019/01/09 04:45
退会済みユーザー
2019/01/09 06:59
2019/01/09 07:08
退会済みユーザー
2019/01/09 07:40
2019/01/09 07:45
2019/01/09 07:48 編集
退会済みユーザー
2019/01/09 08:00
2019/01/09 08:05
2019/01/09 08:09
退会済みユーザー
2019/01/09 08:30
2019/01/09 08:33
退会済みユーザー
2019/01/10 00:14