やりたいこと
お世話になっております。
現在スクレイピングを検討していて、Qiitaの記事などで多くあるように、
beautifulsoup4 と requests
でやろうとしています。
今のコードはこんな感じでスクレイピングの関数を作っていて、
python
1def scraping(url): 2 html = requests.get(url) 3 soup = BeautifulSoup(html.text, "html.parser") 4 5 results_title = soup.find("table", id="lineup").find_all("h2", class_="title") 6 sleep(1) 7 results_company = soup.find("table", id="lineup").find_all("h3", class_="company") 8 sleep(1) 9 results_span = soup.find("table", id="lineup").select("div > span") 10 sleep(1) 11 results_link = soup.find("table", id="lineup").select("h2 > a") 12 sleep(1)
さらにそれを使ったmain()
という関数を記述しています。
Python
1def main(url): 2 scrayping(url) 3 4 # 以下出力したり、リストにしたりの処理 5
聞きたいこと
今回ご教授願いたいのは、BeautifulSoup4が(requestsが?)どのタイミングで相手のwebサイトにアクセスしているかという事です。
多くの記事では相手側のサーバーに負荷をかけないように、sleep()
等で待機時間を設けるべきと書いてありますが、どの処理の箇所に記述するのが適切なのかわかっていません。
現在のコードで合っているのでしょうか?
・アクセスするのはsoupオブジェクト
を使って検索する度になのか
・最初にrequests.get()
を使うときだけなのか
・それ以外なのか
教えていただければ幸いです。
根本的なことでもうしわけありません。
現在の理解ではsoup.find()などを使う度にsleep()が必要なのだ思っておりますので、このプログラムでは実行するごとに合計4回アクセスするのだと思っております。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/25 10:32
2019/05/25 10:39
2019/05/25 16:20