Допустим, я хотел бы собрать данные с веб-сайта для этого биржевого кода, используя urllib:
> sourceURL =
> urllib.request.urlopen("http://www.aastocks.com/tc/stocks/quote/quick-quote.aspx?symbol=00001")
И я бы использовал Beautifulsoup, чтобы получить данные из sourceURL, поскольку у меня есть списокиз акций будет делать ту же работу, поэтому я намерен использовать многопоточность для ускорения процесса.
Однако я слышал, что многопоточность может вызвать состояние гонки, поэтому в этом случае мне нужно применить блокировку какfollow:
lock.acquire()
sourceURL = urllib.request.urlopen("http://www.aastocks.com/en/stocks/analysis/company-fundamental/basic-information?symbol=00001").read()
lock.release()
Насколько я знаю, этот метод urlopen процесса занимает больше всего времени в моем скрипте, было бы бессмысленно применять поток, если блокировка действительно необходима, чтобы избежать повреждения данных в sourceURL или егона самом деле не нужен, так как сама функция urlopen не имеет никаких переменных, а просто получает весь исходный код в sourceURL?
Кроме того, в качестве части сайта я использовал для поиска его селен chromedriver, который занимаетеще больше времени, необходима ли блокировка?
url = 'http://www.aastocks.com/en/stocks/quote/detail-quote.aspx?symbol=00001'
browser.get(url)
browser.find_element_by_xpath('//*[@id="sb2-btnSubmit"]').click()
source = browser.execute_script("return document.body.innerHTML")
Является ли urllib или urllib3, селеновый веб-драйвер безопасным для потоков?