Ich habe mit Web-Scraping mit BeautifulSoup getan und speichern Sie erfolgreich die geparsten Daten in CSV-Dateien, aber ich möchte den Prozess beschleunigen, so dass ich Multiprocessing verwenden. Aber es gibt keinen Unterschied, nachdem ich Multiprocessing im Skript angewendet habe. Hier ist mein CodeMutiprocessing funktioniert nicht in Python Web-Scrapping
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()
# [["bcla_gene","beast+cancer"], ...]
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
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])
Number = soup.find('th',text = "Number of samples").find_next_sibling("td").text
...
#function of scraping
if __name__ == "__main__":
Parallel(n_jobs=-1)(scrap(url,output_path) for url in URLs)
einfach den Code aktualisieren und das Problem ist jetzt die CPU-Auslastung 100% nur am Anfang erreichen, aber bald wird auf 1% gesenkt. Ich bin ziemlich verwirrt darüber.
starten Sie einen und nur einen Thread, nicht verarbeiten und nicht multi. – georgexsh