【发布时间】:2019-10-28 14:56:26
【问题描述】:
我正在尝试构建一个数据抓取工具,但是,在应用必要的过滤器后,表的值会发生变化。我不确定如何使用 selenium 或其他工具应用过滤器。
我的计划是加载基表,然后弄清楚如何应用过滤器并改进我的代码,但即使将基表从网页中删除,我仍然卡住了。我正在尝试应用的过滤器位于站点“https://rotogrinders.com/projected-stats/nfl”上标记为“Slates”的下拉工具栏上
我相当有信心这段代码得到了正确的表格:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = 'https://rotogrinders.com/projected-stats/nfl-qb?site=fanduel'
driver.get(url)
table = driver.find_element_by_xpath("//*[@id='proj-stats']")
但是,将其转换为 pandas 数据框并不顺利。
results_table = []
for row in table:
temp = []
columns = row.find_element_by_xpath("//*[@id='proj-stats']/div[1]")
for column in columns:
temp.append(column.text)
results_table.append(temp)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-79-bdda19bc35a3> in <module>
1 results_table = []
----> 2 for row in table:
3 temp = []
4 columns = row.find_element_by_xpath("//*[@id='proj-stats']/div[1]")
5 for column in columns:
TypeError: 'WebElement' object is not iterable
【问题讨论】:
-
你应该使用 row.find_elements_by_xpath 它应该返回一个可迭代的列表。 find_element 将仅返回从 DOM 中标识的单个 webElement / 第一个元素。
标签: python html pandas selenium