0

Webページからデータをスクレイピングしようとしています。Web ページは任意のページにすることができます。たとえば、をhttp://www.google.com/使用してスクレイピングしてcurlいます。非常に多くの警告が表示され、何もしません。警告は 30 行目にあります。

警告: SimpleXMLElement::__construct(): in C:\wamp\www\nbacurl\index.php

そして、このエラーが数回繰り返されました。

simplehtmldom について聞いたので、ダウンロードしましたが、使い方がわかりません。解析するページがありますが、抜け道が見つかりません。これは機能しない非常に単純なコードです。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com' );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);

$xml = new SimpleXMLElement($contents);
echo '<pre>' , print_r($xml) , '</pre'>; 
4

4 に答える 4

1

で解析しようとしないでくださいSimpleXMLElement。おそらく、DOMDocumentHTML解析に向けたソリューションを提供するか、他のソリューションを試してみてください。

于 2012-10-03T21:56:22.823 に答える
0

ScriptableBrowser (PHP 用) を試してみてください。私は個人的に Python の BeautifulSoup で Mechanize を使用しています。

于 2012-10-03T22:02:38.533 に答える
0

誰もこれを「無関係」と投票しないことを願っていますが、私は機械化を使用して Web ページをスクレイピングし、非常に直感的で効果的であることがわかりました。小さな API で簡単に学習できます。

Python ではなく php を使用していることがわかりました。Mechanize は python/perl ライブラリなので、ここでは関係ないかもしれません。

于 2012-10-03T21:54:21.460 に答える
0

DOMDocumentand のいずれかloadHTMLまたはloadXMLリカバリを有効にして使用します。前者はおそらくあなたが本当に望んでいるものです。

<?php
$doc = new DOMDocument();
$doc->loadHTML($contents);

...
?>

参照: http://www.php.net/manual/en/class.domdocument.php#domdocument.props.recover

<?php
$doc = new DOMDocument();
$doc->recover = TRUE;
$doc->loadXML($contents);

...
?>
于 2012-10-03T22:28:10.170 に答える