gpt4 book ai didi

python - 在 python 中将 html 表转换为 csv

转载 作者:太空狗 更新时间:2023-10-30 00:39:31 25 4
gpt4 key购买 nike

我正在尝试从动态页面中抓取表格。在以下代码(需要 selenium)之后,我设法获取了 <table> 的内容元素。

我想将此表转换为 csv,我尝试了两件事,但都失败了:

  • pandas.read_html返回一个错误,说我没有安装 html5lib,但我安装了,事实上我可以毫无问题地导入它。
  • soup.find_all('tr')返回错误 'NoneType' object is not callable在我运行 soup = BeautifulSoup(tablehtml) 之后

这是我的代码:

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
import pandas as pd

main_url = "http://data.stats.gov.cn/english/easyquery.htm?cn=E0101"
driver = webdriver.Firefox()
driver.get(main_url)
time.sleep(7)
driver.find_element_by_partial_link_text("Industry").click()
time.sleep(7)
driver.find_element_by_partial_link_text("Main Economic Indicat").click()
time.sleep(6)
driver.find_element_by_id("mySelect_sj").click()
time.sleep(2)
driver.find_element_by_class_name("dtText").send_keys("last72")
time.sleep(3)
driver.find_element_by_class_name("dtTextBtn").click()
time.sleep(2)
table=driver.find_element_by_id("table_main")
tablehtml= table.get_attribute('innerHTML')

最佳答案

在这里使用 csv 模块和 selenium 选择器可能会更方便:

import csv
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://example.com/")
table = driver.find_element_by_css_selector("#tableid")
with open('eggs.csv', 'w', newline='') as csvfile:
wr = csv.writer(csvfile)
for row in table.find_elements_by_css_selector('tr'):
wr.writerow([d.text for d in row.find_elements_by_css_selector('td')])

关于python - 在 python 中将 html 表转换为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33633416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com