【问题标题】:Convert inner tbody html content to json将内部 tbody html 内容转换为 json
【发布时间】:2022-01-25 04:16:04
【问题描述】:

我正在尝试从网站获取 web 数据,我只需要从 tbody 类中获取内部 html 数据并将其转换为 json 以便更好地控制以及稍后将数据保存到文件中。我只能通过使用 selenium 中的 find_element(By.XPATH) 来读取每个元素。有什么方法可以读取整个内部 html tbody 内容然后将其解析为 json?请求将无法工作,因为它位于 iframe 中。
website 和 tbody 是带有标题的滚动表:“Tình hình dịch cả nước”,我只想要表格减去标题,如果可能的话,还要加上表格的标题。
读取元素的代码:

browser=webdriver.Firefox()
browser.get("https://covid19.gov.vn/")
time.sleep(3)
browser.switch_to.frame(browser.find_element(By.XPATH,'/html/body/div[1]/div[2]/div[3]/div/iframe'))
value=browser.find_element(By.XPATH,'/html/body/div[2]/div[1]/div/div[2]/div[1]/span[4]')
print(value.text)

【问题讨论】:

  • stackoverflow.com/questions/38917958/convert-html-into-csv 有一个很好的答案。它使用 BeautifulSoup 从 HTML 中提取数据,这可能是您想要做的。
  • @AmitaIrron 谢谢你的建议。但我确实找到了一个更短的替代方案,我将在我的原始帖子中进行编辑

标签: python web-scraping iframe html-tbody


【解决方案1】:

只需调用与返回 JSON 的页面相同的端点。

import requests
import pandas as pd

r = requests.get('https://static.pipezero.com/covid/data.json').json()
location_json = r['locations']
df = pd.DataFrame(location_json)
print(df)

【讨论】:

    猜你喜欢
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2012-06-19
    • 2018-03-28
    相关资源
    最近更新 更多