我想用费率解析网站,但我无法从<td>
元素中取出数据。
我写了一个简短的代码来测试哪个获得第一行数据表:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.gpw.pl/wskazniki_spolek_full')
table = driver.find_elements_by_xpath("//table[@class='tab03']/tbody/tr")[4].text
print table
driver.quit()
我得到了结果:
2 PLNFI0800016 141 08OCTAVA 42 786 848 44,07 63,86 2016-12-31 H 0,69 27,80 ---
但是我希望通过<td>
<tr>
标记中的所有class='tab03'
元素
table = driver.find_elements_by_xpath("//table[@class='tab03']/tbody/tr")
for el in table:
col_id = el.find_element_by_tag_name('td')[1].text
col_kod = el.find_element_by_tag_name('td')[2].text
print("{}".format(col_id, col_kod))
driver.quit()
但我收到错误:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: td
答案 0 :(得分:1)
有些标题行中没有td
个元素,请跳过它们:
rows = driver.find_elements_by_xpath("//table[@class='tab03']/tbody/tr")
for row in rows[3:]:
cells = row.find_elements_by_tag_name('td')
col_id = cells[0].text
col_kod = cells[1].text
print("{}".format(col_id, col_kod))
另请注意,要访问td
单元格,请使用find_elements_by_tag_name()
并按索引(从0开始)获取所需的元素。