0

次のように Curl を使用してスクリーン スクレイピングを行っています。

<?php
$url = "http://www.bbc.com/news/";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
?> 

そして、そのコンテンツを HTML ページにエコーします。問題は、JavaScript ファイルに割り当てられた相対 URL が原因で、コンソールを見ると 404 エラーが表示されることです。たとえば、URL が次の場合:somejavascriptfile.jsページをロードすると、次のようにドメイン名が追加されます:http://mydomain/somejavascriptfile.jsこれらのパスは明らかに正しくありません。

では、代わりに js ファイルの実際の URL を取得するにはどうすればよいでしょうか? 本文の URL を変更するために jQuery (分割/置換) を使用できますが、この場合は機能しません。

4

1 に答える 1

3

baseスクレイピングされた HTML にタグを追加できます。

tidyなどの HTML パーサーで開き、head セクションの先頭に移動して<base>タグを追加します。ベース タグは、すべてのリソース アクセスを既知の場所にリダイレクトします。

于 2013-04-06T09:22:02.777 に答える