0

for ループを使用して Web サイトから結果をダウンロードし、コンパイルする必要があります。

(これらのパラメーターを使用して Web ページを表示する ASP 要求であることに注意してください)

これを取得するために次のコードを書きました。

<?php
for ($i=10; $i<500; $i++) {
$m = $i*10;

$dl = $query;
$text = file_get_contents($dl);
$doc = new DOMDocument('1.0');
$doc->loadHTML($text);
$aObj = $doc->find('Academic');
if (count($aObj) > 0)
{
   echo "<h4>Found</h4>";
   //Don't download this
}
else
{
   echo "<h4>Not found</h4>";
   //Download this
}
}
?>

しかし、それはいくつかのエラーを返します。ASPX ファイルを HTML DOM にコピーできないようです。どうすればこれを行うことができますか?また、文字列「Download」が見つからないページをダウンロード/保存するにはどうすればよいですか?

また、ドキュメント内の「ダウンロード」を見つける方法が機能していないと思います。これを行う正しい方法は何ですか?

4

1 に答える 1

0

解析しようとしている Web サイトには多くのエラーが含まれているため、標準の DOMDocument オブジェクトを使用することはできません。SimpleHTMLDOM ( http://simplehtmldom.sourceforge.net/ ) や phpQuery ( https://code.google.com/p/phpquery/ )などのライブラリを使用してみてください。不正なドキュメント。

いくつかの情報が必要な場合は、正規表現と preg_match_all ( http://www.php.net/manual/en/function.preg-match-all.php ) を使用して「Academic」の出現箇所をすべて見つける方が簡単です。例えば。

通常、HTML などの構造化されたドキュメントを扱うときに正規表現を使用することはあまりお勧めできません。なぜなら、構造を利用できないからです。唯一の方法。

于 2013-03-29T16:08:40.303 に答える