私は次のスクレイピング機能を既にシリアルに実装していますが、データが複数あるのでいくつかの作業を並列化します。ここで働くシリアルコードは次のとおりです。2つのスレッドで2つのURLのスクレイピング機能を実行するPython
from bs4 import BeautifulSoup as bs
import requests
edbURL='URL1'
psnURL='URL2'
def urlScraper(URL):
page=requests.get(URL)
soup=bs(page.text,'lxml')
l = ['base_URL'+str(i.a['href']) for i in soup.find_all('div',class_='info')]
return l
edbs=urlScraper(edbURL)
psns=urlScraper(psnURL)
それぞれにurlScraper(URL)
に2つのコールが自分自身のスレッドを取得し、並行して実行するために、私は希望のどのような、私はthreads
ライブラリを使用してみましたが、唯一にいくつかの大きな厄介なint
リターンを得ました次の構文:
edbs = threads.start_new_thread(urlScraper,(edbURL,))
psns = threads.start_new_thread(urlScraper,(psnURL,))
私はそれが再び、urlScraper(URL)
でreturn
とは何かを持っている図は、私は基本的に何でもについてはほとんど何も知りません。誰も助けてくれてありがとう!
あなたは彼らが実際に並列に動作するので、速い、それはPythonで起こらないであろうことを期待している場合。スレッドは実際には並行して実行されません。これを参照してください:http://stackoverflow.com/questions/1697571/python-threading-appears-to-run-threads-sequentially – shiva
私は実際に並列で私はサイフォンとopenmpを使用することができますか? – ThisGuyCantEven
マルチプロセッシングを使用して並列処理することができます。 – shiva