2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
我真的不明白為什么你同時(shí)使用 scrapy 和 selenium,但我們可以說只是使用 selenium。要從表中獲取文本,您可以執(zhí)行以下非常簡(jiǎn)單的操作:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("headless")
desired_capabilities = options.to_capabilities()
driver = webdriver.Chrome('C:/chromedriver', desired_capabilities=desired_capabilities)
driver.get("https://www.timeshighereducation.com/world-university-rankings/2021/world-ranking#!/page/0/length/25/sort_by/scores_overall/sort_order/asc/cols/scores")
driver.implicitly_wait(1)
table = driver.find_element_by_xpath('//*[@id="datatable-1"]')
print(table.text)
現(xiàn)在,如果您將表中的所有內(nèi)容分開,只需使用該find_element_by_xxx函數(shù)并通過 xpath 選擇其他部分即可。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
如果您需要迭代結(jié)果,您應(yīng)該選擇 elements 而不是 element。更改您的代碼:
for table in driver.find_element_by_xpath('//*[contains(@id,"datatable-1")]//tr'):
編碼:
for table in driver.find_elements_by_xpath('//*[contains(@id,"datatable-1")]//tr'):
添加回答
舉報(bào)