在Python中使用Selenium抓取时,只能获取表中的第一行是因为Selenium默认只能获取网页中的第一个匹配元素。如果需要获取表中的多行数据,可以通过以下方法解决:
示例代码:
from selenium import webdriver
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开网页
driver.get("http://example.com")
# 使用XPath获取所有行元素
rows = driver.find_elements_by_xpath("//table//tr")
# 遍历行元素并提取数据
for row in rows:
# 提取每行中的列数据
columns = row.find_elements_by_xpath(".//td")
for column in columns:
print(column.text)
# 关闭浏览器驱动
driver.quit()
示例代码:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开网页
driver.get("http://example.com")
# 模拟按下Page Down键滚动页面
actions = ActionChains(driver)
actions.send_keys(Keys.PAGE_DOWN).perform()
# 继续按下Page Down键滚动页面,直到需要的数据出现在可见区域
while True:
# 获取表中的所有行元素
rows = driver.find_elements_by_xpath("//table//tr")
if len(rows) > 1:
break
actions.send_keys(Keys.PAGE_DOWN).perform()
# 遍历行元素并提取数据
for row in rows:
# 提取每行中的列数据
columns = row.find_elements_by_xpath(".//td")
for column in columns:
print(column.text)
# 关闭浏览器驱动
driver.quit()
以上是解决在Python中使用Selenium抓取时只能获取表中的第一行的两种方法。根据具体情况选择适合的方法来获取表中的多行数据。
领取专属 10元无门槛券
手把手带您无忧上云