Selenium 获取嵌套网页表格传入一个列表中
时间: 2024-03-20 10:33:24 浏览: 17
以下是一个示例代码,可以使用 Selenium 获取嵌套网页表格,并将其传入一个列表中:
```python
from selenium import webdriver
# 初始化浏览器
browser = webdriver.Chrome()
# 访问网页
browser.get('https://example.com')
# 定位嵌套网页的 iframe 元素
iframe = browser.find_element_by_xpath('//iframe[@id="iframe_id"]')
# 切换到 iframe 中
browser.switch_to.frame(iframe)
# 定位表格元素
table = browser.find_element_by_xpath('//table[@id="table_id"]')
# 初始化列表
table_data = []
# 遍历表格行
for row in table.find_elements_by_xpath('.//tr'):
# 初始化行数据
row_data = []
# 遍历表格列
for cell in row.find_elements_by_xpath('.//td'):
# 将列数据添加到行数据中
row_data.append(cell.text)
# 将行数据添加到列表中
table_data.append(row_data)
# 切换回主窗口
browser.switch_to.default_content()
# 关闭浏览器
browser.quit()
# 打印表格数据
print(table_data)
```
说明:
1. 首先,需要初始化一个 Selenium 浏览器对象 `browser`(这里使用 Chrome 浏览器作为示例)。
2. 然后,使用 `browser.get()` 方法访问目标网页。
3. 接下来,需要定位嵌套网页的 iframe 元素,并使用 `browser.switch_to.frame()` 方法切换到 iframe 中。
4. 然后,使用 `browser.find_element_by_xpath()` 方法定位表格元素。
5. 初始化一个空列表 `table_data`,用于存储表格数据。
6. 遍历表格行,对于每一行,遍历表格列,将列数据添加到行数据中,然后将行数据添加到 `table_data` 列表中。
7. 遍历完表格后,使用 `browser.switch_to.default_content()` 方法切换回主窗口。
8. 最后,关闭浏览器对象 `browser`,并打印表格数据。