es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo llamar a un método dentro de una clase de Python usando Selenium y Python.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy muy nuevo en la programación, necesito resolver algo práctico simplemente obtener información del sitio y escribirla en Excel (espero poder hacerlo con las guías), pero el problema principal es que simplemente no puedo ingresar al sitio (el sitio web es gratuito).

¿Puede revisar mi código? Cuando lo ejecuto, obtengo:

[]

Proceso terminado con el código de salida 0

import requests
from bs4 import BeautifulSoup
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

URL = ‘http://way2drug.com/passonline/’
HEADERS = {‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36’, ‘accept’: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9′}

class Test1():
def setup_method(self, method):
self.driver = webdriver.Chrome()
self.vars = {}

def teardown_method(self, method):
self.driver.quit()

def test_1(self):
# Nombre de la prueba: 1
# Paso # | nombre | destino | valor | comentario
# 1 | abrir | /passonline/ | |
self.driver.get(“http://way2drug.com/passonline/”)
# 2 | setWindowSize | 1920×1030 | |
self.driver.set_window_size(1920, 1030)
# 3 | click | css=#registration img | |
self.driver.find_element(By.CSS_SELECTOR, “#registration img”).click()
# 4 | click | name=user_login | |
self.driver.find_element(By.NAME, “user_login”).click()
# 5 | type | name=user_login | |
self.driver.find_element(By.NAME, “user_login”).send_keys(“MI USUARIO”)
# 6 | click | id=page1 | |
self.driver.find_element(By.ID, “page1”).click()
# 7 | type | name=user_password | |
self.driver.find_element(By.NAME, “user_password”).send_keys(“MI CONTRASEÑA”)
# 8 | click | id=register | |
self.driver.find_element(By.ID, “register”).click()
# 9 | click | id=myHeader1 | |
self.driver.find_element(By.ID, “myHeader1”).click()
# 10 | click | id=smiles | |
self.driver.find_element(By.ID, “smiles”).click()
self.driver.find_element(By.ID, “smi”).click()
self.driver.find_element(By.ID, “smi”).send_keys(“CC1(C)C(O)CC[C@@]2(C)C1CC[C@]3(C)C2CCC4[C@@]3(C)CC[C@]5(C(O)=O)C4C@HC(C)=CC5″)
self.driver.find_element(By.CSS_SELECTOR, “#myContent4 input:nth-child(4)”).click()

def get_html(url, params=None):
r = requests.get(url, headers=HEADERS, params=params)
return r

def get_content(html):
soup = BeautifulSoup(html, ‘html.parser’)
items = soup.find_all(‘a’, class_=’Antineoplastic’)

print(items)

def parse():
html = get_html(URL)
if html.status_code == 200:
get_content(html.text)
else:
print(‘TODAS SUS BASES PERTENECEN A NOSOTROS’)

parse()

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, según el código proporcionado, no es posible ver qué puede estar causando el problema de no poder acceder al sitio web. El código proporcionado solo incluye funciones para obtener HTML de un sitio web utilizando requests y BeautifulSoup, y el código de prueba para un script de Selenium.

    Una solución posible para extraer información de un sitio web y escribirla en Excel es utilizar Selenium para automatizar la navegación del sitio web y BeautifulSoup para extraer los datos relevantes. Aquí hay un ejemplo básico de cómo se podría hacer esto:

    import openpyxl
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from bs4 import BeautifulSoup
    
    # configurar el webdriver
    driver = webdriver.Chrome()
    driver.get("http://example.com")
    
    # obtener el contenido HTML de la página
    html = driver.page_source
    
    # analizar el HTML con BeautifulSoup
    soup = BeautifulSoup(html, "html.parser")
    
    # extraer los datos relevantes
    data = soup.find("div", class_="example-div").get_text()
    
    # crear un nuevo libro de trabajo de Excel y escribir los datos en una hoja
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    sheet.cell(row=1, column=1, value=data)
    workbook.save("example.xlsx")
    
    # cerrar el webdriver
    driver.quit()
    

    Este código navega a http://example.com`, obtiene el contenido HTML de la página, utiliza BeautifulSoup para extraer el texto de un elementodivcon la claseexample-div` y escribe los datos en un libro de trabajo de Excel utilizando openpyxl.

    Tenga en cuenta que este es un ejemplo muy básico y es probable que necesite modificarlo para adaptarlo a sus necesidades específicas. Además, si el sitio web al que intenta acceder requiere autenticación, deberá modificar el código de Selenium para iniciar sesión en el sitio.

Comments are closed.