0
私は約50件のウィキペディアのページを検索しようとしています。私はリクエストパッケージを使ってGET要求を行ってきましたが、パフォーマンスがはるかに高いと聞いてgrequestsの実装に取り組んできました。Wikipedia Queries + Grequests
性能の向上は、私にとっては非常に非常に小さいです。私は何か間違っているのですか?
import requests
import grequests
from urllib.parse import quote
from time import time
url = 'https://en.wikipedia.org/w/api.php?action=query&titles={0}&prop=pageprops&ppprop=disambiguation&format=json'
titles = ['Harriet Tubman', 'Car', 'Underground Railroad', 'American Civil War', 'Kate Larson']
urls = [url.format(quote(title)) for title in titles]
def sync_test(urls):
results = []
s = time()
for url in urls:
results.append(requests.get(url))
e = time()
return e-s
def async_test(urls):
s = time()
results = grequests.map((grequests.get(url) for url in urls))
e = time()
return e-s
def iterate(urls, num):
sync_time = 0
async_time = 0
for i in range(num):
sync_time += sync_test(urls)
async_time += async_test(urls)
print("sync_time: {}\nasync_time: {}".format(sync_time, async_time))
出力: SYNC_TIME:8.945282936096191 async_time:7.97578239440918
ありがとう!
ここに何の問題が表示されません。あなたは 'grequests'対'要求 'のパフォーマンスの一般的な分析をしたいのですか?あなたが何か「聞いた」ためにあなたのプログラムを何倍にするか?あなたが数万人を処理する予定がない限り、50ページ分の8秒が私には適切なパフォーマンスに見えます。 –
ウィキペディアのボットを書く専用のライブラリもありますが、ここではホイールを改造しないほうが良いかもしれません。 –