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

139
Visualizações
Buscar por estilo (color) con request_html

Tengo que usar requests_html para el contenido de JavaScript. Código:

 <td class="text-left worker-col truncated"><a href="/account/0x58e0ff2eb3addd3ce75cc3fbdac3ac3f4e21fa/38-G1x" style="color:red">38-G1</a></td>

Quiero encontrar todos los nombres (38-G1 en este caso) con color rojo. Quiero buscarlos por style="color:red" . ¿Es esto posible con requests_html ? ¿Como puedo hacer esto?

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

0

Uso tanto la sesión html como el selenio con bs4. Selenium funciona bien, pero la sesión html no puede procesar js.

Código con selenio. (Éxito)

 from bs4 import BeautifulSoup import time from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe') url = URL driver.get(url) time.sleep(8) soup = BeautifulSoup(driver.page_source, 'html.parser') for t in soup.select('table.table.table-bordered.table-hover.table-responsive tr'): txt= t.select_one('td:nth-child(2) > a') text= txt.text if txt else None print(text)

Producción:

 38-G15 47_G15_2 47-G1 49-O15 90_GGX 91_ASF 105_MGPM_3 112-GG3 121-APRO 188-MGPM1 198-AP 248_MGPM_1 262-GUD 265_ASF 302-AD 355-GUD.2 Rig_3471855 rigEdge 107_MGPM_3 None None

Código con sesión html (sin renderizar js)

 from bs4 import BeautifulSoup from requests_html import HTMLSession session = HTMLSession() response = session.get(URL) soup = BeautifulSoup(response.content, 'html.parser') for t in soup.select('table.table.table-bordered.table-hover.table-responsive tr'): txt= t.select_one('td:nth-child(2) > a') text= txt.text if txt else None print(text)
about 4 years ago · Juan Pablo Isaza Relatório

0

Editar: en este caso, JavaScript agrega el estilo después de cargar la página, por lo que debe esperar a que se cargue toda la página antes de rasparla, por lo que Selenium es el camino a seguir.

Puedes agarrar la página de esta manera, tal como lo hizo Fazlul:

 from bs4 import BeautifulSoup as bs import time from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome('chromedriver',chrome_options=chrome_options) driver.get("URL") time.sleep(5) html = bs(driver.page_source, 'html.parser')

luego puede usar un selector de comodín CSS, luego imprimir su texto interno:

 anchors = html.select('a[style*="color:red"]') print([a.text for a in anchors])

O

Podría encontrar todas las etiquetas <a> y ponerlas en una lista si tienen ese atributo.

 anchors = html.select('a') names = [] for a in anchors: if 'style' in a.attrs and "color:red" in a.attrs['style']: names.append(a.text)

Editar: Veo que otro usuario le dio una solución con BeautifulSoup y me gustaría agregar que si es nuevo en webscraping, pero planea aprender más, también le recomiendo que aprenda a usar BeautifulSoup. No solo es más potente, sino que su base de usuarios es mucho más grande, por lo que es más fácil encontrar soluciones para su problema.

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