How to write a selenium loop in Python? -


i want web-scrape data many different websites contains javascript code (thus why using selenium method information). working great, when try load next url long error message :

> traceback (most recent call last):   file "c:/python27/air17.py", line 46, in <module>     scrape(urls)   file "c:/python27/air17.py", line 28, in scrape     browser.get(url)   file "c:\python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in     self.execute(command.get, {'url': url})   file "c:\python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 254, in execute     response = self.command_executor.execute(driver_command, params)   file "c:\python27\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 464, in execute     return self._request(command_info[0], url, body=data)   file "c:\python27\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 487, in _request     self._conn.request(method, parsed_url.path, body, headers)   file "c:\python27\lib\httplib.py", line 1042, in request     self._send_request(method, url, body, headers)   file "c:\python27\lib\httplib.py", line 1082, in _send_request     self.endheaders(body)   file "c:\python27\lib\httplib.py", line 1038, in endheaders     self._send_output(message_body)   file "c:\python27\lib\httplib.py", line 882, in _send_output     self.send(msg)   file "c:\python27\lib\httplib.py", line 844, in send     self.connect()   file "c:\python27\lib\httplib.py", line 821, in connect     self.timeout, self.source_address)   file "c:\python27\lib\socket.py", line 575, in create_connection     raise err error: [errno 10061]  

the data first website in csv file, when code tries open next website freezes, , error message. doing wrong?

from bs4 import beautifulsoup selenium import webdriver import time import urllib2 import unicodecsv csv import os import sys import io import time import datetime import pandas pd bs4 import beautifulsoup import mysqldb import re import contextlib import selenium.webdriver.support.ui ui  filename=r'output.csv'  resultcsv=open(filename,"wb") output=csv.writer(resultcsv, delimiter=';',quotechar = '"', quoting=csv.quote_nonnumeric, encoding='latin-1') output.writerow(['time','flight','from','airlane','aircraft','ihavetodeletethis','status'])   def scrape(urls):     browser = webdriver.firefox()     url in urls:         browser.get(url)         html = browser.page_source         soup=beautifulsoup(html,"html.parser")         table = soup.find('table', { "class" : "table table-condensed table-hover data-table m-n-t-15" })         datatable=[]         record in table.find_all('tr', class_="hidden-xs hidden-sm ng-scope"):             temp_data = []             data in record.find_all("td"):                 temp_data.append(data.text.encode('latin-1'))             datatable.append(temp_data)          output.writerows(datatable)          resultcsv.close()         time.sleep(10)          browser.quit()  urls = ["https://www.flightradar24.com/data/airports/bud/arrivals", "https://www.flightradar24.com/data/airports/fco/arrivals"] scrape(urls) 

not sure browser.quit() have @ end of method such idea. according selenium doc :

quit()

quits driver , close every associated window.

i think browser.close()(as documented here) enough in loop. keep browser.quit() outside loop.


Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -