JSで構築された複雑なページなどをスクレイピングしたい場合、物足りなくなるケースが出てきます。複雑なWebページをスクレイピングする方法をご紹介します。requests-htmlまとめrequests-htmlとはrequests、pipenvの作者の方が開発したhtmlの取得・parse用のライブラリです。readableなコードを書くことができます。基本的な使い方は以下の通りです。first=True)requests-htmlは大変便利なライブラリなのですが、JSで構築された複雑なページをスクレイピングする際には力不足になるケースがあります。browserを直接使用したスクレイピングを行うことで、対応することができます。pyppeteerとはpyppeteerとは、Chromeをheadlessで操作するライブラリであるPuppeteerのPythonラッパーです。Seleniumと比べて文法がシンプルであり、async/awaitを用いてオシャレに非同期処理が書けることがメリットです。github.com基本的な使い方は以下の通りです。browser.close()asyncio.get_event_loop().run_until_complete(main())スクレイピングに用いる場合の注意点として、20秒以上の通信をする場合、Chromiumとpyppeteerのコネクションが切れてしまうバグが存在するようです。そのため、以下のコードでpatchを適用しましょう。loopがnestできずにエラーが出るケースがあるので、その場合は以下のworkaround用ライブラリを適用してください。Chromeの操作ライブラリであるため、単体ではhtmlのparse処理には不向きです。複雑なHPのスクレイピングも短いコードで記述することができるようになります。asyncio.get_event_loop().run_until_complete(fetch())このように、シンプルなコードで複雑なページもスクレイピングすることができます。まとめrequests-htmlとpyppeteerを組み合わせることで、複雑なページもシンプルなコードでスクレイピングを行うことができます。不動産における入居率の計算方法について不動産の家賃相場分析はなぜ難しいのかはてなブログをはじめよう!shobyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。