2016-02-14 2 views
1

У меня есть следующий код:селена, получение ссылки из массива

driver = webdriver.Firefox() 

for element in links: 
    driver.get(element) 
    html = driver.page_source 
    soup = BeautifulSoup(html, 'html.parser') 
    #driver.switchTo().window() 
    driver.close() 
    date = soup.find_all("td", {"id": "utime"}) 
    title = soup("title") 

Ссылка является списком адресов, которые мне нужно разобрать. Первый элемент ссылки - okey, но когда открывается вторая ссылка;

Traceback (most recent call last): 
File "/home/Version01.py", line 10, in <module> 
driver.get(element) 
File "/usr/local/lib/python2.7/dist-packages 
self.execute(Command.GET, {'url': url}) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver  /remote/webdriver.py", line 199, in execute 
response = self.command_executor.execute(driver_command, params) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver /remote/remote_connection.py", line 395, in execute 
    return self._request(command_info[0], url, body=data) 
....... 
File "/usr/lib/python2.7/httplib.py", line 778, in connect 
self.timeout, self.source_address) 
File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
raise err 
socket.error: [Errno 111] Connection refused 

Как я могу просматривать разные ссылки из массива?

ответ

4

Вы закрываете свой driver внутри цикла, поэтому вторая итерация больше не может работать с ним.

Попробуйте использовать driver.close() после того, как для цикла:

driver = webdriver.Firefox() 

for element in links: 
    driver.do_something() 

driver.close() 
Смежные вопросы