Estoy tratando de extraer una tabla de la página web (https: // es. wikipedia.org/wiki/2018%E2%80%9319_Premier_League) usando selenio y BeautifulSoup.
Pero estoy atrapado con la tabla de análisis. Solo quiero una tabla de la página web que sea "Tabla de la liga", pero sea lo que sea lo que he intentado, recibí mensajes de error.
Aquí está mi código que he probado.
import selenium
from bs4 import BeautifulSoup
from selenium import webdriver
import time
driver.get("https://google.com")
elem = driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input')
elem.send_keys("2018 epl")
elem.submit()
try:
print(driver.title)
driver.find_element_by_partial_link_text("Wikipedia").click()
website = requests.get(driver.current_url).text
soup = BeautifulSoup(website, 'html.parser')
Y luego me enfrento a problemas ... He probado varios códigos, uno de ellos está debajo.
rows=soup.find_all('td')
Entonces, ¿me pueden ayudar a completar mi código? Muchas gracias.
3 respuestas
Puede usar pandas read_html y extraer a través del índice apropiado. Sin embargo, mostraré el uso de: tiene selector para bs4 4.7.1 + para garantizar que seleccione h2 que tiene id League_table y luego el combinador de hermanos inmediato para obtener la tabla adyacente
from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
r = requests.get('https://en.wikipedia.org/wiki/2018%E2%80%9319_Premier_League')
soup = bs(r.content, 'lxml')
table = pd.read_html(str(soup.select_one('h2:has(#League_table) + table')))
print(table)
Solo lee_html
import pandas as pd
tables = pd.read_html('https://en.wikipedia.org/wiki/2018%E2%80%9319_Premier_League')
print(tables[4])
Obtuve la tabla usando este código debajo de su código.
soup.body.find_all("table", class_="wikitable")[3]
Encontré la tabla usando el método de prueba y error, es decir, primero veo la clase de la tabla y luego uso find_all y luego enumero elementos individuales y verifico la salida.
Tal vez eso te ayude a comenzar:
import requests
from bs4 import BeautifulSoup
respond = requests.get('https://en.wikipedia.org/wiki/2018%E2%80%9319_Premier_League')
soup = BeautifulSoup(respond.text, 'lxml')
table = soup.find_all('table', {'class': 'wikitable'})
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.