Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

325
Visualizações
Python: raspado de archivos que están en objetos JavaScript

Estoy tratando de descargar archivos de un sitio web de conjuntos de datos de VA con un raspador de Python, pero tengo problemas para descubrir cómo analizar el JavaScript en el sitio web HTML que parece contener los archivos. Este es el código fuente del sitio web (ver fuente: https://www.data.va.gov/dataset/Air-Force-Veterans-2017-Living-Only/9u8y-zaby ). Estoy tratando de descargar los archivos ".xlsx", que (simplemente usando el comando + F en mi Mac) creo que están en objetos de JavaScript. He buscado en este sitio y en otros, pero no he podido descubrir cómo extraer enlaces desde JavaScript. ¿Cómo debo hacer esto? Cualquier ayuda sería muy apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ese sitio web se genera dinámicamente, puede usar Selenium para descargar los archivos deseados

Aquí hay un código de trabajo usando wget , selenium y webdriver_manager

Esto verificará el enlace y guardará el archivo xlsx en el directorio definido por el usuario

 import time import wget import requests from selenium import webdriver from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptions, FirefoxOptions from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = ChromeOptions() # try out options # options.binary_location = '/opt/headless-chromium' # options.add_argument("--headless") # options.add_argument("--disable-gpu") # options.add_argument("--no-sandbox") # options.add_argument('--disable-dev-shm-usage') # options.add_argument('--disable-gpu-sandbox') # options.add_argument("--single-process") options.add_argument( "user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36") options.add_argument('--disable-blink-features=AutomationControlled') options.add_experimental_option("useAutomationExtension", False) options.add_experimental_option("excludeSwitches", ["enable-automation"]) s = Service(ChromeDriverManager().install()) # s = Service(GeckoDriverManager().install()) driver = webdriver.Chrome(service=s, options=options) driver.get('https://www.data.va.gov/dataset/Air-Force-Veterans-2017-Living-Only/9u8y-zaby') time.sleep(3) # get the link download_link = driver.find_element(By.XPATH, '//*[@id="app"]/div/div[2]/section/div/div/div[2]/a').get_attribute( 'href') # download the file output_directory = 'data' # it will download the file to data directory filename = wget.download(download_link, out=output_directory) time.sleep(3) driver.close() driver.quit()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda