特定のもの(リンクなど)のためにWebページをスクレイピングするときに役立つ機能があります。
function list_tags($html, $start, $end)
{
preg_match_all("($start(.*)$end)siU", $html, $matching_data);
return $matching_data[0];
}
使用例:
$open_tag = '<a';
$close_tag = '>';
$links = list_tags($html, $open_tag, $close_tag);
したがって、次のようprint_r($links);
になります。
Array
(
[0] => <a href="blah.html">
[1] => <a href="other_blah.html">
Etc...
Etc...
)
$open_tag = '<script';
or
などを使用すると同じことができますが、
$open_tag = '<div';
使用しようとすると、ページにいくつかのタグ$open_tag = '<input';
があるにもかかわらず、配列が完全に空になります。<input>
何か案は?
編集:
私がこすり取ろうとしている特定のページはhttp://www.pcsoweb.com/inmatebooking/Inquiry.aspx
. 自分で作成したページで同じことを使用したところ、`<input ... />
作成したすべての出現箇所が見つかりました。
<input />
この特定のサイトでタグを取得するのを妨げている原因を突き止めるには、さらに深く掘り下げる必要があります。
また、これがより良い結果をもたらすかどうかを確認するために、DOMDocument
クラスを調べます。
提案、doublesharp、feelaに感謝します。本当の問題が何であるかを確認するために、これをもう少し詳しく調べます。