Soy un principiante con Python y estaba tratando de automatizar un proceso que implica ir a un sitio: http://www.wildcad.net/WildCADWeb.asp y hacer clic en cada centro de despacho, por ejemplo: http://www. wildcad.net/WCAZ-ADC.htm , desde allí cargando un kml. Noté que cada página sigue un formato similar, así que pensé que podría usar una función de seleccionar todo. Escribí mi código como...
from bs4 import BeautifulSoup import requests urls = ('http://www.wildcad.net/WCAZ-ADC.htm', 'http://www.wildcad.net/WCALAIC.htm', 'http://www.wildcad.net/WCAR-AOC.htm','http://www.wildcad.net/WCAZ-ADC.htm' 'http://www.wildcad.net/WCAZ-FDC.htm', 'http://www.wildcad.net/WCAZ-PDC.htm' 'http://www.wildcad.net/WCAZ-PHC.htm', 'http://www.wildcad.net/WCAZ-SDC.htm' 'http://www.wildcad.net/WCAZ-TDC.htm', 'http://www.wildcad.net/WCAZ-WDC.htm') result = requests.get(urls) doc = BeautifulSoup(result.text, 'html.parser') print(doc.prettify()) for i in enumerate(soup.findAll('a')): _KML = urls + link.get('href') if _KML.endswith('.kml'): urls.append(_KML) open(_KML)Sin embargo, no parece extraer los archivos y sigo recibiendo un mensaje de error en la línea '65' ¡Cualquier dirección o ejemplo de cómo remediar esto será muy apreciado!
Código de trabajo. Por favor, simplemente ejecute el código.
import time from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup url = 'http://www.wildcad.net/WildCADWeb.asp' driver = webdriver.Chrome(ChromeDriverManager().install()) driver.maximize_window() time.sleep(2) driver.get(url) time.sleep(5) soup = BeautifulSoup(driver.page_source, "html.parser") for link in soup.select('table[align="center"] tbody tr td a')[1:]: url=link.get('href') #print(url) if url.endswith('.kml'): kml_url = url print(kml_url)Producción:
http://www.wildcad.net/WAearth.kml