1
我試圖使用Python 3.6和Selenium從表格中獲取數據。我試圖抓住的表格之一有多行。所以,我想從每一行中獲得第9列。循環遍歷行以使用硒和python獲取列數據
我在這個網站上搜索了一下,發現了一些代碼,我幾乎可以適應幾乎所有的工作。
table_id = driver.find_element(By.ID, 'ctl00_mid_rptItems_ctl00_gvItems')
rows = table_id.find_elements(By.TAG_NAME, "tr")
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
for col in cols:
print (cols[8].text)
它吐出來,從我想要的列正確的數據,但我遇到的問題是,它的每一行循環16次,這是表中的列數,並打印每個數據點16次。
我試着去適應以上通過移除了「山坳」循環
table_id = driver.find_element(By.ID, 'ctl00_mid_rptItems_ctl00_gvItems')
rows = table_id.find_elements(By.TAG_NAME, "tr")
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
print (cols[8].text)
但是,僅僅吐出每列1時的代碼,這使錯誤「回溯(最近通話最後一個): 文件 「C:\用戶\文檔\ PleaseTest_R1.py」,行91,在
打印(的cols [8]的.text) IndexError:列表索引超出範圍
我如何能得到這個任何想法循環工作?
非常感謝您的幫助!:-)
如果您使用的Watir(由紅寶石製成硒包裝),你沒有得到行數面對這些問題,因爲它給了你像'b.table.rows.each'這樣的好語法。因此,解決您的問題的方法是,如果您使用的是Chrome或Mozilla,請使用JavaScript。如果您在IE中工作,那麼JavaScript也不是解決方案 – RAJ
謝謝您的建議。如果可能的話,我希望能夠在Python中完成整個事情。 –