【发布时间】:2019-07-06 10:40:30
【问题描述】:
我正在尝试抓取一个网页,该网页具有一个嵌入在 HTML 注释中的表格,该注释在某些 JavaScript 执行后被加载。我正在使用 requests_html 和 render 来执行 JavaScript 并获取包括表格(实际上是页面上的第二个表格)的完整页面,并且效果很好。我遇到的问题是当我尝试将该表包含在 Pandas DataFrame 中时。
我尝试了几种不同的选项来尝试将数据转换为某种格式。呈现网页后,我尝试遍历表格,从中可以打印表格的 html 以及表格的文本,但是当我尝试遍历表格并将数据插入 Pandas DataFrame 时它失败。
from requests_html import HTMLSession
url = 'https://www.sports-reference.com/cfb/schools/iowa/2018/gamelog/'
session = HTMLSession()
r = session.get(url)
r.html.render()
table = r.html.find('table#defense')
defensive_game_list = []
for d_stats in table:
d_stats_sum = d_stats.find_all('td')
d_game_sum = [d_stats.text for d_stats in d_stats_sum]
defensive_game_list.append(d_game_sum)
df_defense = pd.DataFrame(deffensive_sum_final)
当我运行代码时,我在迭代后收到以下错误:
Traceback(最近一次调用最后一次): 文件“”,第 2 行,在 AttributeError:“元素”对象没有属性“find_all”
我希望它能将表格的文本放入一个空列表中,然后将该列表放入 DataFrame 中。
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: python html pandas beautifulsoup python-requests