語言:Python工具:Selenium瀏覽器:Chrome嗨,這是我第一次嘗試編碼,以使我的生活更輕松。我目前正在嘗試從客戶的供應商門戶中刪除一張桌子。這是為了自動化一個非常手動且耗時的過程。我已經確定了我想要獲取的表的 XPATH。下面是我的代碼片段以及我如何嘗試抓取它。當我第一次執行循環時,列表僅包含最后一行的信息。所以我添加了 來print(len(rows))查明是否確實附加了任何內容。令我沮喪的是,它只打印 1,1,1,1,1,1 直到循環結束。我相信列表中的內容正在被替換,而不是被附加。我不確定我哪里做錯了,希望得到您的建議。另外,如果您有時間的話,我還想請教一些指導。由于我要在抓取表格后進行一些清理,所以我應該抓取每一列并將每一列分配給一個變量,還是應該像我現在所做的那樣抓取每一行。#Identify number of rowsrows = driver.find_elements(By.XPATH, "//*[@id='docflow.list_DocFlowList']/tbody/tr/td/table/tbody/tr")row_nos = len(rows)#Get text from rows variable#Range starts from 2 to exclude headerfor i in range(2, row_nos): row = driver.find_elements(By.XPATH, "//*[@id='docflow.list_DocFlowList']/tbody/tr/td/table/tbody/tr["+str(i)+"]") row_text = [] for content in row: row_text.append(content.text) print(len(row_text))
1 回答

浮云間
TA貢獻1829條經驗 獲得超4個贊
row_text = []應該在for循環之外聲明。但是,您的代碼結構過于復雜
它可以被固定和簡化如下:
rows = driver.find_elements(By.XPATH, "//*[@id='docflow.list_DocFlowList']/tbody/tr/td/table/tbody/tr")[1:]
row_text = [row.text for row in rows]
添加回答
舉報
0/150
提交
取消