2017-06-03 11 views
1

私はPythonでwebscrapeする方法を学んでいて、requests.get()で2つのページを取得して2つの呼び出しと変数を別々にする必要がないかどうか疑問に思っています。例:Pythonは.get()を複数のページからリクエストしますか?

r1 = requests.get("page1") 
r2 = requests.get("page2") 

pg1 = BeautifulSoup(r1.content, "html.parser") 
pg2 = BeautifulSoup(r2.content, "html.parser") 

ご覧のとおり、繰り返しコードがあります。これはどうですか?ありがとう!

答えて

5

リストの割り当てと補完を使用できますが、2ページではそれほど短くはありません。

pg1, pg2 = [ BeautifulSoup(requests.get(page).content, "html.parser") 
       for page in ["page1","page2"] ] 
+0

見つけることができます。それは最後に、私が欠落していると言っているか? – dj1121

+0

気にしないでください! – dj1121

3

私の代わりに要求の、一度に複数のURLを取得するためのgrequestsライブラリが好き。特に、多くのサブページを持つURLまたは単一のURLを扱う場合。

import grequests 
urls = ['http://google.com', 'http://yahoo.com', 'http://bing.com'] 
unsent_request = (grequests.get(url) for url in urls) 

results = grequests.map(unsent_request) 

この後、resultsを処理することができます。これは、JSONデータとうまく動作します:results[0] =最初のURLデータ、results[1] = 2番目のURLデータなどを...

よりは、私は私がなぜわからないんだけど、構文エラーを取得していますhere

関連する問題