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中完成整个事情。 –