質問: ウェブスクレイピングをしてツイッターのアカウントを収集しているのですが、 あるウェブサイトがどうしてもスクレイピングできなくて、困っています。 以前、ツイフィール(※1)というサイトをウェブスクレイピングしたことがありました。 このウェブサイトをスクレイピングする際は、 の`page=2`の部分を3、4、5・・・とforループを回して変更していき、 情報を収集することができていました。 今回はツイフィールではなくて、ツイプロ(※2)というウェブサイトをスクレイピングしたいと考えています。 しかし、ウェブスクレイピングできない部分があって困っております。 例えば、ツイプロでデザイナのカテゴリに登録されているアカウントを収集したいとき(※3)、 最初は1ページに20件しか表示されていなく、「もっと見る」ボタンを押すことで更に20件読み込むことができます。 しかし、「もっと見る」ボタンを押す前と、押した後で、ウェブのURLは変わっていません。 ですので、ツイフィールのときに利用したような手法は使えないと考えています。 このように、ページングした時にウェブのURLが変わらないタイプのサイトは、 どのような手法でウェブスクレイピングすればいいのでしょうか? 言語はpythonで、スクレピングのライブラリはbeautifulsoupを使っています。 ※1 ※2 ※3
回答: BeautifulSoup: 1つのURLで「承認」ボタンを押した後のみ表示されるHTMLをスクレイピングしたい(意訳) のように、本家SOに類似の質問が見つかります。 その回答によると、seleniumなどを併用しないとイベントの発火はできないようです。 このようなサイトをスクレイピングする場合は、BeautifulSoupだけでは限界があると認識しています。 ただし※3のサイトのソースを確認したところ、URLの末尾に`/{数値}`を追加すれば目的の情報は得られそうですが...。