python - 如何迭代 HTML 数据中所有表的代码?

标签 python loops web-scraping html-table

这是我正在抓取的网页的 HTML 数据,正如您所看到的,它有多个选项卡。 (https://paste.pythondiscord.com/resaxivedo.py)

This is my code:
with open("tabledata.html", "r") as f:
    contents = f.read()
    outfile = open("table_data.csv", "w", newline='')
    writer = csv.writer(outfile)
    tree = BeautifulSoup(contents, "lxml")

    dates = tree.findAll(class_="date")
    list_of_dates = [date.text for date in dates]

    table_tag = tree.select("table")[0]
    tab_data = [[item.text for item in row_data.select("th,td")]
                for row_data in table_tag.select("tr")]
    writer.writerow(list_of_dates[0])
    for data in tab_data:
        print(' '.join(data))
        writer.writerow(data)

如您所见,我正在使用 [0] 选择表格和日期。 如何创建一个循环以便打印 HTML 页面中所有表格的数据?

最佳答案

类似这样的事情:

for table_tag in tree.select("table") :
    tab_data = [[item.text for item in row_data.select("th,td")]
                for row_data in table_tag.select("tr")]
    writer.writerow(list_of_dates[0])
    for data in tab_data:
        print(' '.join(data))
        writer.writerow(data)

关于python - 如何迭代 HTML 数据中所有表的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778520/

相关文章:

python - 抓取元素上缺少类/id 的数据

python - 下载多个 PDF 时出现问题

python - 如何在Python中向不同的收件人发送不同内容的电子邮件?

python - 区分外部调用的对象方法和子类调用的对象方法的约定是什么?

python - 在 Pandas Python 中处理多重索引

javascript - 循环 jQuery ajax 并传递参数的正确方法

python - 模块未找到错误: No module named '' in Scrapy

python - 在 Python 脚本中打印数字总和

java - java中的连接循环

python - 遍历所有给定的参数并检查它们的值