PHP爬虫類体験(3) - PHPを使用して+ページコンテンツの人形遣いJSクロールダイナミックレンダリング

2匹の爬虫類の経験を記述する前に、基本的にはページのJS使用して、動的レンダリング(のような一般的なHTMLページがシーンを抽出し、カバーし、時には、ターゲットページは純粋に静的なページがない場合は、しかし、一つの悪い爬虫類前に、)そう、この時、それは達成するために、いくつかの他のツールを使用します。

一般的なクロール動的ページの考え方は、レンダリング後のページの画像にソフトウェアシミュレーションブラウザの動作を介して取得することであり、そのページの解析をレンダリングした後、一般的なツールは、度を維持するためのプロジェクトを通じてようにセレン、phantomJs、人形遣いとを含み、コントラストのPHPの親しみやすさは、私は人形遣いを使用しています。

公式の報告によると、2017年Googleは、独自のChromeブラウザのヘッドレス特性を開発するために、人形遣いがこの時点で生まれて、その原理はChromeでは、ブラウザのオープンインタフェースパッケージ、利便性と通信するためにクロームデベロッパーツールのインタフェースを呼び出すことによって開かれていますユーザー・コールは、ブラウザの動作を容易に実現することができますシミュレートします。

インストールして実際には非常に簡単です、人形遣いをお試しください:

1
NPM私は人形遣い

example.jsテストを記述する公式APIによると:

1 
2
3
4
5
6
7
8
9
10
11
非同期 機能 { CONSTブラウザ=を待つ)(puppeteer.launchします。constのページ=を待つ browser.newPage(); 待つ page.gotoは('http://wufazhuce.com'); リターン page.content(); }。






非同期()=> { CONST =を待つ開始(); process.stdout.writeを(A); })();



HTMLページのレンダリングが完了した後に実行ノードexample.jsは、コンソール出力を見ることができるようになり、この時間は、標準出力プロセスの次のステップに到達読みのfopen PHPのHTMLテキストを使用することができます。

関連サポート上記のgithubのを見つけ、我々が見つかりました。browsershot / spatieを使用すると、人形遣いが動的に生成されたHTMLコンテンツを取得するために使用して、クロールするコンテンツを取得するには、DOM-クローラーを使用し続けることができるようにステップに直接良いパッケージをプロジェクトに:

1 
2
3
4
5
6
7
8
$この - >クローラー= 新しいクローラ(); 
$のhtml = Browsershot :: URL($この - > URL)
- > setOptionを('引数'、[ '--no-サンドボックス''--disable-setuidの-サンドボックス' ]) - > bodyHtml(); $この - > crawler-> addHtmlContent($ htmlの);





オリジナル:ビッグボックス  PHP爬虫類体験(3) -ページのコンテンツのPHP +人形遣いクロールjsの動的なレンダリングを使用


おすすめ

転載: www.cnblogs.com/sanxiandoupi/p/11641858.html
おすすめ