0
私は多数のURLにウェブスクレイピングを使用しようとしています。スピードアップするためにマルチプロセッシングを適用しますが、なぜ高速化できないのか分かりません。ここに私のコードの一部です:ウェブスクレイピングマルチプロセッシングが動作しない
def scrap(url,output_path):
page = urlopen(URL)
soup = BeautifulSoup(page, 'html.parser')
item_text = soup.select('#scatter6001 script')[0].text
table = soup.find_all('table',{'class':'noborder dark'})
df1 = pd.read_html(str(table),header = 0)
df1 = pd.DataFrame(df1[0])
...
# function for scraping the data from url
rootPath = '...'
urlp1 = "https://www.proteinatlas.org/"
try:
df1 = pd.read_csv(rootPath + "cancer_list1_2(1).csv", header=0);
except Exception as e:
print("File " + f + " doesn't exist")
print(str(e))
sys.exit()
cancer_list = df1.as_matrix().tolist()
URLs = []
for cancer in cancer_list:
urlp2 = "/pathology/tissue/" + cancer[1]
f = cancer[0]
try:
df1 = pd.read_csv(rootPath + f + ".csv", header=0);
except Exception as e:
print("File " + f + " doesn't exist")
print(str(e))
sys.exit()
...
# list of URLs
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=6)
records = p.map(scrap(url,output_path))
p.terminate()
p.join()
ウェブスクレイピング使用してマルチプロセッシングをスピードアップする方法がわかりません。
共有していただきありがとうございます。ただし、コードを変更しても、速度は向上しません。 '場合__name__ == '__main__': プール= multiprocessing.Pool(プロセス= 6) FUNC =ラムダURL:スクラップ(URL、output_path) p.map(FUNC、URLの) p.terminate() P .join() ' –
すみませんが、私はPythonとマルチプロセッシングにはかなり新しいです。 –
テストコードでマルチプロセッシングを正常に使用しましたか? – wkzhu