我在使用Multiprocessing库的Pool类时遇到问题。
我有以下代码将列表作为输入,然后将其写入汤对象,然后将其放入列表并返回
def extract_BS(urls):
BS_LIST = []
for url in urls:
try:
browser = webdriver.Firefox()
browser.get(url)
print('Processing..' + url)
respData = browser.page_source
soup = bs.BeautifulSoup(respData, 'html.parser')
BS_LIST.append(soup)
browser.quit()
except Exception as e:
print(url)
print('Exception:',e)
pass
return BS_LIST
我使用了10个网址的列表,并且它有效。现在,我想使用多线程来提高抓取速度。我使用以下代码,其中urls = 10个URL的列表
with Pool(10) as p:
records = p.map(extract_BS, urls)
p.terminate()
p.join()
我收到一个错误,其实质上表明它正在使用网址中每个网址的第一个字母。
h
Exception: Message: Malformed URL: h is not a valid URL.
由于某种原因,它需要我列表中第一个元素的第一个字母,而不是实际的第一个条目。有什么帮助吗?