小野田?
スクレイピング・クローリングをする前に html,css,HTTPリクエスト・レスポンス, 正規表現の基礎知識が必要なので ない人は事前に習得しておく必要がある(各用語のリンクレベルの知識で一応OK)
pip install beautifulsoup4 (beautifulsoupだけだと旧バージョンになるので注意) pip install lxml pip install requests
javascriptが入ったページをスクレイピングしたい場合はPhantomJsとseleniumuの組み合わせが必要
基本的なことはこちら を見ればわかる
ちなみに上サイトは非効率なやり方で行っているので本格運用する場合はこの本もしくはこの本を読むことをオススメする
ちなみにBeautifulSoup4を使う場合内部で使うParserをlxmlに設定すると高速に解析できる
まずどこでオーバーヘッドが発生しているかで以下の対策が取れる
上のものほどソフトウェア的であり, 下に行くほどハードウェアの問題となる
プログラム内部の処理を高速化したい場合はマルチスレッド・マルチプロセスに対応させる必要があるマルチスレッドは一つのコアで複数の処理を同時に行うことで マルチプロセスは複数のコアで並列にプログラムを処理させることである 例えば8コアのCPUの場合で2マルチスレッド, 8マルチプロセスだと 2(プロセスあたりのスレッド数)× 8(コア数) = 16となり 16個並列にプログラムが動いてることになる
やり方は各言語によって違うので各々調べるべし 例: JavaであるとThreadクラスを使う, Pythonならthreadingモジュールとmultiproccessingモジュールがある
データをwebから収集するレスポンスが遅い場合は非同期処理により待ち時間を有意義に使うことができる 詳しくはこちら
Pythonだとfor文の代わりにリスト内包記法を使うなどプログラムの記述によって 処理速度が多少変わる
プログラミング言語により速度が変わるので
単純にPCのスペックが低い可能性がある. 指導教員に相談しよう