勉強メモです。
howdoiというpythonのプロジェクトを書き写しています。
It is a generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.
PyQueryによるWebスクレイピング -クイックスタート-
【初心者向け】Pythonで初めてのスクレイピング
公式doc
ログインを必要とするWebサイトの情報をRequestsを用いて取得しようとする際、その都度GETやPOSTでアクセスするとセッションが途切れてしまい毎回ログイン処理をしないといけません。
これを回避するためにRequestsはSessionモードをサポートしています。
doc
starmapでPythonでの並列処理の結果をリストで受け取る
starmapは並列処理に複数の引数を渡して結果をリストで受け取るらしい
前回のコードだとたまにサブプロセスで実行されることがある、くらいだったのでsleepを入れてみた
from multiprocessing import Pool
import os
import time
def return_id(*args):
time.sleep(2)
return os.getpid()
if __name__ == "__main__":
with Pool(processes=4) as pool:
print(pool.map(return_id, range(4)))
結果
[10644, 10646, 10645, 10647]
マルチプロセスにならない。。。
from multiprocessing import Pool
import os
def return_id(*args):
return os.getpid()
if __name__ == "__main__":
with Pool(processes=4) as pool:
print(pool.map(return_id, range(4)))
multiple_results = [pool.apply_async(os.getpid, ()) for i in range(5)]
results = [res.get(timeout=1) for res in multiple_results]
print(results)
■ 謎
並行処理、並列処理のあれこれ
【Python】マルチプロセスについて
マルチプロセスな処理を実装して、処理を高速化する
- 並列処理:別のプロセスで複数の処理を同時にやる(重い処理向き)
- 平行処理:同じプロセスで複数の処理を同時にやる(待機が多い処理向き)
Poolを使うとプロセス数の指定ができる