- 【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
311 :デフォルトの名無しさん[sage]:2016/04/12(火) 01:59:13.91 ID:vDLzdyvt - PHPの勉強にweb巡回ツールを作成中なのですが
現在はfire_get_contentsでHTMLを取得し、DOMDocumentからLoadHTMLでDOMドキュメントに変換し、それをsimplexml_import_domでxmlに変換し、xpathで要素を指定するといった方法を取っています。 しかし変換したxmlの中身のデータに元のソースコードの食い違いなど不審な点があったので、中身の要素を全て表示してみたところ、htmlソースの「::before」「::after」で指定されている部分のソースコードが取得出来ていないという事が判明しました。 調べてみたところこのタグはCSSでいじる段階になってからHTMLコードを追加するといったタグのようで、fire_get_contentsで取得したhtmlには含まれていないようです こういった表示段階になって始めて表示される要素まで含めた完全なHTMLソースを取得したいのですが、何か良い方法は無いでしょうか。 よろしくお願い致します。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
314 :デフォルトの名無しさん[sage]:2016/04/12(火) 02:38:41.31 ID:vDLzdyvt - >>312
やっぱり一旦ブラウザに読み込んでからhtmlを取得した方が確実みたいですね 設定作業が難しそうなので避けていましたが、セレニウムってのでそんな感じの事が出来ると思うのでもう少しやり方を調べてみようと思います >>313 UAならリクエスト送る段階で偽装出来ると思うのですが、なるべく対応したいです やっぱりページ更新のチェック位置が取得出来ない部分にあったら巡回不可能なサイトが出来てしまう訳ですし・・・ HTMLやCSSにはあまり詳しくないのですが、擬似要素での可変部分は内部的な記述で隠蔽しているという訳ではないんですね 自分で展開できそうならそちらも視野に入れて調べてみます、ありがとうございます
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
316 :デフォルトの名無しさん[sage]:2016/04/12(火) 03:29:34.82 ID:vDLzdyvt - >>315
あまり詳しくはないのですが要素の位置に変化が無ければ値が変化しても特に問題は無いと思います htmlが取ってこれればそれをdomに突っ込んでxmlに変換してxpath通せば特定要素だけを取ってくる事は出来るので それでhtml上の更新時に必ず変化が起きる要素を一定時間ごとにチェックして変化が確認できたらログを保存してチェックデータを更新といった具合で実装しようと思っています
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net
318 :デフォルトの名無しさん[sage]:2016/04/12(火) 05:46:53.79 ID:vDLzdyvt - しかしどうしても不思議なんだけど外部サーバから動かす時ってブラウザはどうやって用意するんだろ・・・
seleniumにブラウザのドライバがあってそれ使ってコマンド飛ばせばブラウザを動かせるってのは分かるんだ そしてwindowsやらmacならフツーにfirefoxなりchromeなりインストールしたら使えるってのも分かる しかし外部サーバにphpファイルをアップロードして使うって話になると肝心のwebブラウザはどうやって読みこませればいいんだろう 元からインストールされてるとも思えないしレンタルサーバにwebブラウザがインストール出来るのか、それともwebブラウザのexeファイルだけ置けば普通に使えるのか そもそもレンタルサーバがGUI環境じゃなかった場合webブラウザってのはマトモに動くのか php web driverってのがある以上何らかの手段はあるんだろうけど、レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのかっていう必要なものが見えてこない・・・うーむ・・・
|