我在Windows上同时运行几个Python脚本,每个脚本都使用Selenium从Web获取数据。如果我只单独运行其中一个,一切运行良好。但是当一起运行时,我不断收到以下错误:
OSError:[WinError 10048]每个套接字地址只有一种用法 (协议/网络地址/端口)通常是允许的
它始终位于使用find_element_by_tag_name
Selenium函数的行。以下是完整回溯的示例。它有点长,但它表明它在尝试运行socket.connect方法时出现了。有关为什么会发生这种情况以及如何实现同时运行使用Selenium的Python脚本的目标的任何建议?
Traceback (most recent call last):
File "<ipython-input-1-ba99a1a73a3a>", line 1, in <module>
runfile('D:/testFolder/test.py', wdir='D:/testFolder')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "D:/testFolder/test.py", line 40, in <module>
files = [file.find_element_by_tag_name('a') for file in files]
File "D:/testFolder/test.py", line 40, in <listcomp>
files = [file.find_element_by_tag_name('a') for file in files]
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 230, in find_element_by_tag_name
return self.find_element(by=By.TAG_NAME, value=name)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 516, in find_element
{"using": by, "value": value})['value']
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 499, in _execute
return self._parent.execute(command, params)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 295, in execute
response = self.command_executor.execute(driver_command, params)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 464, in execute
return self._request(command_info[0], url, body=data)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 487, in _request
self._conn.request(method, parsed_url.path, body, headers)
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1026, in _send_output
self.send(msg)
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 964, in send
self.connect()
File "C:\ProgramData\Anaconda3\lib\http\client.py", line 936, in connect
(self.host,self.port), self.timeout, self.source_address)
File "C:\ProgramData\Anaconda3\lib\socket.py", line 722, in create_connection
raise err
File "C:\ProgramData\Anaconda3\lib\socket.py", line 713, in create_connection
sock.connect(sa)
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted