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()
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:
Este código navega a
http://example.com`, obtiene el contenido HTML de la página, utiliza BeautifulSoup para extraer el texto de un elemento
divcon la clase
example-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.