2017-09-14 5 views
0

私はしばしばインターネットのWebページから情報を解析/擦りする必要があります。私はlxmlrequestsを使用しています。ほぼすべての場合、情報は本質的に連続しています。例えば、株式関連情報や日付情報などです。現在、私はループを実行するためにリストの理解を実行します。私は同時に複数のページを解析できる方法があるかどうか疑問に思っていますか?私はマルチプロセッシング/フォークについて知っていますが、もっとシンプルなソリューションがありがたいです。ここに私のサンプルコード複数のWebページを同時に解析する

[lxml.html.fromstring(requests.get(i).content).xpath("//tr//td//text()") for i in ("some_list of url addresses")] 

これが正常に動作しているが、私は、ブラウザで複数のWebページを開くにやや似、ループの単一の実行で複数の(多分点で最大8)ウェブページを解析することができるようにしたいです。

+0

治療法を調べてください。 –

答えて

0

私はあなたがマルチプロセッシングを認識していると書いたことが分かりました。 しかし、あなたは簡単な解決策を探していると述べています。私は、スレッド化がそのような簡単な解決策を提供すると考えています。

import requests 
import lxml 
import threading 

urls = ["sample.com", "sample2.com", "sample3.com"] 


def scrap(url): 
    return lxml.html.fromstring(requests.get(i).content).xpath("//tr//td//text()") 

for url in urls: 
    if threading.active_count() < 8: 
     threading.Thread(target=scrap, args=(url,)).start() 
関連する問題