0
デコモジュールが提供する同時実行機能を使用しようとしています。ここでは答えに示すようにコードが....複数のスレッドなしマルチプロセスサブ関数は結果を返しません。
Extract specific columns from a given webpage
を取り組んでいる。しかし、次のコードは、finallistのための任意の要素を返しません。 (それは空です)。 printステートメントから明らかなように、 "slow"の関数スコープ内でいくつかの結果を返します。しかし、外側のリストはなぜ空であるのですか?
import urllib.request
from bs4 import BeautifulSoup
from deco import concurrent, synchronized
finallist=list()
urllist=list()
@concurrent
def slow(url):
#print (url)
try:
page = urllib.request.urlopen(url).read()
soup = BeautifulSoup(page)
mylist=list()
for anchor in soup.find_all('div', {'class':'col-xs-8'})[:9]:
mylist.append(anchor.text)
urllist.append(url)
finallist.append(mylist)
#print (mylist)
print (finallist)
except:
pass
@synchronized
def run():
finallist=list()
urllist=list()
for i in range(10):
url='https://pythonexpress.in/workshop/'+str(i).zfill(3)
print (url)
slow(url)
slow.wait()