Simple HTML DOM Parserでalt属性の値が「xxx」のものだけやtitle属性の値「xxx」だけとか取得したい。 特定の属性を持っている全部のタグの属性値を取得 例えばbodyタグ内にあるすべてのタグを対象に、alt属性を保有しているタグのalt属性の値を取得する。 $attr = $dom->find('body *[alt]'); foreach( $attr as $val){ $str[] = $val->alt; }
PHP Simple HTML DOM Parserを最近使い始めて まだ基本的な部分しかわからず困っています。 現在ショッピングサイトのデータを自サイトに表示するために 取得を行なっているのですが ショッピングサイトのテーブルにクラス属性などがあまり無く 指定した物を取得する方法で行き詰っています。 属性などが無いので foreach ($html->find('td[align=center] a') as $element) { array_push($test, $element); } 等で取得を行い商品とタイトルと価格等は表示が行えるようになりました。 しかし、必要のないものまで含まれてしまい その部分だけを除外したいのですが、除外方法等はありませんでしょうか? イメージ的には foreach ($html->find('td[align=center] a, td[class
画像収集化が自分用に作ったりもする。 単体で使ったり、PEARのGDライブラリなんかと合わせて使ったりする。 ページのクロール ↓ イメージタグ検索 ↓ imgURL取得 ↓ ダウンロード ↓ GDで画像サイズ変換 といった動きの開発する時に使う。 特定範囲をタグで指定してその範囲の中の画像をダウンロードさせたりするとより効果的です。 画像のダウンロード $imurl = "";//画像のURL指定 $imNAME = "";//保存するURLというかファイル名 $imDL = file_get_contents($imurl); $imOUTPUT = fopen($imDL,"w"); flock($imOUTPUT ,LOCK_EX); fwrite($imOUTPUT,$imDL); "w"で指定するため、保存先フォルダのパーミッションは666等に変更しておく必要があります。 if
HTMLをパースしてきてDB化したり、RSSのテンプレに落とし込む…と言ったことを少し前からしているのですけど、1つ2つならいざ知らず対象サイトが増えてくると正規表現で何かし続けるのはたいそう無理があります。そういうわけでDOMを使ったりXPathを使ったりもしていたのですが、どちらもHTMLの構造にぴったりとは言えなくて、高度なことが出来るが故に記述が複雑になってしまうのでした。うーん。慣れるまでにハードルがあるな… そんなことを思っていたのですが、ふとした拍子に見つけたライブラリ「PHP Simple HTML DOM Parser」を利用してみたらば、とてつもなく便利でびっくり。jQueryのようなセレクタでガンガン指定して持ってくるスタイルでわかりやすいのなんの。 $text = $dom->find('#todays_darling', 0)->innertext; //今日のダ
[PHP] PHP Simple HTML DOM Parser で繰り返し処理を行うとメモリが大量に消費されるのを回避する PHP Simple HTML DOM Parserという HTML をパースを行い jQuery のように簡単にスクレイピングすることができるライブラリがあるのですが、for などで繰り返しメソッドを使用すると大量にメモリを消費してしまい処理が中断してしまうことがありました。 その原因を調べたところ有名な現象のようですぐに解決策が見つかりました。下記のように $html の使用が終わったら clear メソッドの実行し、$html も unset することで for で繰り返してもメモリの大量消費が発生することはなくなりました。
まあベストというか、HTML形式の文字列を配列化するためのPHPライブラリの一つである『PHP Simple HTML DOM Parser』を使うのが一番賢い方法ですかね? >http://sourceforge.net/projects/simplehtmldom/files/ 自作のPHPコードを使える環境であれば、自前のライブラリ設置も自由に出来る環境かと思われますので。インストールなどのセッティング作業のやり方は割愛。で、後は概ねこんな感じでPHPコードを記述します。 ━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━ include( './simple-html-dom/simple_html_dom.php' ); //PHPの冒頭部分で読み込み. $output = my_html_parser('./html-sample.html'); //一応,事前にサ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く