![](/img/trans.png)
[英]Python and how to get text from Selenium element WebElement object?
[英]How do I get the text and not the webelement object?
我能夠通過循環 go 並打印正確的結果,但是當我嘗試下載時,我無法將相同的數據下載到文本文件中。 我知道我遺漏了一些非常簡單的東西,或者我在集成 pandas 庫時犯了一個錯誤。 如果有人可以提供幫助,那就太好了。
from time import sleep
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
term = driver.find_elements_by_xpath("//tbody/tr")
for row in term:
columns = row.find_elements_by_xpath("./td")
termres = []
for i in columns:
termres.append(i.text)
if len(termres) == 7:
print(termres[0] + '\t' + termres[1] + '\t' + termres[2] + '\t' + termres[3] + '\t' + termres[4])
elif len(termres) == 10:
print(termres[0] + '\t' + termres[1] + '\t' + termres[3] + '\t' + termres[4] + '\t' + termres[5])
elif len(termres) == 1 and termres[0] == 'Unofficial Transcript':
print('-')
elif len(termres) == 6 and termres[0].isalpha():
print(termres[0] + '\t' + termres[1] + '\t' + termres[3] + '\t' + termres[4] )
#"""
df = pd.DataFrame({'':term})
df.to_csv('term.txt', index= False)
print('downloaded')
打印語句中的 output 是一個巨大的列表,所以我將 output 的一部分作為示例:
CHEM 101 General Chemistry I TR 3.000
CHEM 103 General Chemistry Lab I TR 1.000
CHEM 151 General Chemistry I TR 3.000
CHEM 153 General Chemistry I Laboratory TR 1.000
-
-
然后這是下載到文本文件的內容:
df = pd.DataFrame({'':term})
df.to_csv('term.txt', index= False)
print('downloaded')
#result from the above code in a text file.
"<selenium.webdriver.remote.webelement.WebElement (session=""0c17f0126422f2144127b971ad19e1f6"", element=""65e1e68a-e2c3-48e9-a89d-72c7c1d2811e"")>"
"<selenium.webdriver.remote.webelement.WebElement (session=""0c17f0126422f2144127b971ad19e1f6"", element=""d6f0374b-fe70-4499-abb8-75275f92fc59"")>"
所以問題是我如何獲取文本而不是 webelement object?
根據代碼行:
term = driver.find_elements_by_xpath("//tbody/tr")
term
是<tr>
元素的列表,每個WebElement表示為:
<selenium.webdriver.remote.webelement.WebElement (session="d4f20fd17bf4037ed8cf50b00e844a7f", element="f12cf837-6c77-4c90-9da2-7b5fb9da9e5d")>
盡管您已經向下遍歷到<tr>
元素的后代甚至打印了所需的文本,但在您的程序中繼續前進,但是在構建dataframe而不是考慮所需的文本時,您已經考慮了存儲在term
列表中的<tr>
,這是一個 WebElements 列表。
因此,相同的 WebElements 寫在文本文件term.txt中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.