如何用漂亮的湯單獨加載每一列?
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup as bs
url = "https://www.datasport.com/live/ranking/?racenr=21110&kat=96"
driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(10)
# goal: Click popup' away!!!!
driver.find_element(by=By.XPATH, value='/html/body/div[1]/div/a').click()
soup = bs(driver.page_source, "lxml")
A=[]
for i in soup.find_all('td'):
A.append(i.get_text())
print(A)
driver.close()
當前輸出是整個表。但我需要單獨的所有列。
我的目標是為表格的每一列創建一個串列。
第一列第一行的 Xpath: //*[@id="tableResult1"]/tbody/tr[1]/td[1]
第四列第一行的 Xpath: //*[@id="tableResult1"]/tbody/tr[1]/td[4]
第一列第三行的 Xpath: //*[@id="tableResult1"]/tbody/tr[3]/td[1]
使用 selenium,我可以使用: driver.find_elements(by=By.XPATH, value=//*[@id="tableResult1"]/tbody/tr/td[1])) 加載第一列。我怎樣才能對 bs 做同樣的事情?例如:soup.find_all('td'[1]) 不起作用。
uj5u.com熱心網友回復:
要獲取表格每一列的串列,您可以應用stripped_strings方法。
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup as bs
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
data=[]
url = "https://www.datasport.com/live/ranking/?racenr=21110&kat=96"
driver.get(url)
driver.maximize_window()
driver.implicitly_wait(10)
# goal: Click popup' away!!!!
driver.find_element(By.XPATH, value='/html/body/div[1]/div/a').click()
soup = bs(driver.page_source, "lxml")
data=[]
for tr in soup.select('#tableResult1 tbody tr'):
tr=list(tr.stripped_strings)
data.append(tr[1])
print(data)
輸出:
['Felfele Tesfaye', 'Matheka Bernard', 'Blackney Kevin', 'Wyndaele Romain', 'Oumoussa Zouhair', 'Fleury Julien', 'Allueva Miguel', 'Asfaw Tensai', 'Vieira Goncalves Paulo', 'Da Silva Miguel', 'Deletraz Arnaud', 'Boussague Lhoussein', 'Pinto Ricardo', 'Ané Jean-Pierre',
'Mouzoun El Houssine', 'Planès Ga?l', 'Marchal Dorian', 'Antoine Regis', 'Wyss Colin', 'Allan Harry', 'Thomet Vincent', 'Panozzo Piero', 'Gaudin Mika?l', 'Birchmeier Damien', 'Soleilhac Florent', 'Eicher Bernhard', 'Lachat Theo', 'Mackay Iain', 'Paccard Simon', 'Bernabeu Florian', 'Bosset Jér?me', 'Amarhoun Majid', 'Chaudoye Fabien', 'Romanens Jimmy', 'Bontaz Christophe', 'Marmillod Yves', 'Maffongelli Marco', 'Robas Gaspard', 'Matti Thibaut', 'Nuber Yoann', 'Afewerki Samuel', 'Zutter Jonathan', 'Rémy Cohann', 'Gebrezgabiher Aron', 'Tremblet Stephan', 'Ferrara Florent', 'Godbille Frédéric', 'Despréaux Julien', 'Casati Federico', 'Laurent Jerome', 'Gilliéron Christophe', 'Ferreira Paulo', 'Kopasz Arthur', 'Gabioud Romain', 'Chauvetet Paul', 'Wild Simon', 'Roubaty Quentin', 'Romelli Daniele', 'Charpigny Xavier', 'Hermand Dennis', 'Bouzon Daniel', 'Kowalski Adam', 'Secheyron Tom', 'Gottardo Alban', 'Faucheur Alexis', 'Pellegrino Vincenzo', 'Widmer Frédéric', 'Kellerhals Thomas', 'Duarte Micael', 'Reddy Akash Anant', 'Karlen Nathan', 'Marty Iwan', 'Ramer Roger', 'Simoncelli Michele', 'Albuquerque Bruno', 'Stübi Fabio', 'Niedergang Eric', 'Vaucher Gilles',
'Mc Intyre Paul', 'Schwab Roman', 'Collaud Yohan', 'Kninech Bouchaib', 'Capt Léonard', 'Sauser Martin', 'Martin Frédéric', 'Gharbi Alex', 'Farrera-Soler Lluc', 'Bigler Nicolas', 'Simonet David', 'Socie Etienne', 'Garnier Noah', 'Laithier Dorian', 'Rothlisberger Bastien', 'Schindl David', 'Correvon Jari', 'Tschopp Benjamin', 'Duchet Guillaume', 'Baptiste Benoit', 'Soares Amilcar', 'Golay Simon']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/463171.html
