开发手册 欢迎您!
软件开发者资料库

Python pandas read_html()获取动态或静态页面中的table表格数据到Excel文件

本文主要介绍Python中,使用pandas的read_html()读取动态(需要浏览器解析的页面)或静态页面中的table表格数据,并存储到Excel文件中的方法,以及相关的示例代码。

1、使用read_html()读取静态页面的table

静态页面是指不需要浏览器解析生成,直接获取的html页面的源码,例如,

import pandas as pdurl_mcc = "https://baike.baidu.com/item/%E7%A7%BB%E5%8A%A8%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%A0%81/5935540?fr=aladdin"dfs = pd.read_html(    url_mcc,    match="GSM 900 / GSM 1800 / UMTS 2100",    header=0,    converters={"MNC": str},)dfs[0].to_excel('~/wonhero.xlsx', index=False)

相关文档:

Python pandas.DataFrame.to_excel函数方法的使用

Python Pandas pandas.read_html函数方法的使用

2、使用Selenium获取需要浏览器解析的html

参考文档Python Selenium ChromeDriver 获取指定标签元素内的html

# -*- encoding: utf-8 -*-# Created on 2022-02-20 15:37:50# Project: read_html()from distutils.file_util import write_filefrom selenium.webdriver.chrome.service import Servicefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.keys import Keysimport timeimport pandas as pd chrome_options = Options()chrome_options.add_argument('lang=zh-CN,zh,zh-TW,en-US,en')chrome_options.add_argument('--headless')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')chrome_options.add_argument('--disable-gpu')chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])c_service = Service("/usr/bin/chromedriver")#指定下载好的chromedriver的路径c_service.command_line_args()c_service.start()web = webdriver.Chrome(options=chrome_options)web.get('https://baike.baidu.com/item/%E7%A7%BB%E5%8A%A8%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%A0%81/5935540?fr=aladdin')time.sleep(2)element = web.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]')page_html = element.get_attribute('innerHTML')print(page_html)dfs = pd.read_html(    page_html,    match="GSM 900 / GSM 1800 / UMTS 2100",    header=0,    converters={"MNC": str},)dfs[0].to_excel('~/wonhero.xlsx', index=False)