Python爬取表结构数据---pandas快速获取

例如:

此形式的表数据,可用pandas获取

image

首先获取table

import requests
from lxml import etree
import pandas as pd

url = 'http://dn4.gxzjt.gov.cn:1141/WebInfo/Enterprise/Enterprise_Detail.aspx?prjnum=43445821-a17e-4c7b-9217-97c4e38cbf30'
a = requests.get(url).text
b = etree.HTML(a)
c = b.xpath("//div[@id='ContentPlaceHolder1_UpdatePanel2']/fieldset/table")

然后使用pandas将数据内容转成列表嵌套字典格式

zcry_table = etree.tostring(c[0], encoding='utf-8').decode()
df = pd.read_html(zcry_table, encoding='utf-8', header=0)[0]
results = list(df.T.to_dict().values())   # 转换成列表嵌套字典的格式
print(results)

结果如下:

[{'序号': 1, '人员姓名': '高轩跃', '证件号码': '362427********361X', '注册专业及等级': '二建造师注册证书', '专业': '公路工程', '注册证书编号': '桂245151545179', '有效期至': '2018/4/24 0:00:00'}, {'序号': 2, '人员姓名': '高轩跃', '证件号码': '362427********361X', '注册专业及等级': '二级建造师注册证书', '专业': '市政公用工程', '注册证书编号': '桂245151545179', '有效期至': '2018/4/23 0:00:00'}, {'序号': 3, '人员姓名': '高轩强', '证件号码': '362427********3615', '注册专业及等级': '暂无', '专业': nan, '注册证书编号': nan, '有效期至': nan}, {'序号': 4, '人员姓名': '曹明亮', '证件号码': '360101********5010', '注册专业及等级': '暂无', '专业': nan, '注册证书编号': nan, '有效期至': nan}, {'序号': 5, '人员姓名': '崔庆梅', '证件号码': '530325********1726', '注册专业及等级': '暂无', '专业': nan, '注册证书编号': nan, '有效期至': nan}, {'序号': 6, '人员姓名': '李晓燕', '证件号码': '530126********0846', '注册专业及等级': '暂无', '专业': nan, '注册证书编号': nan, '有效期至': nan}]

最后循环依次取出:

for result in results:
    ryxm = result['人员姓名']
    zjhm = result['证件号码']
    zclxjdj = result['注册专业及等级']
    zy = result['专业']
    zczsbh = result['注册证书编号']
    yxqz = result['有效期至']
    print(ryxm, zjhm, zclxjdj, zczsbh, zy, yxqz)
高轩跃 362427********361X 二建造师注册证书 桂245151545179 公路工程 2018/4/24 0:00:00
高轩跃 362427********361X 二级建造师注册证书 桂245151545179 市政公用工程 2018/4/23 0:00:00
高轩强 362427********3615 暂无 nan nan nan
曹明亮 360101********5010 暂无 nan nan nan
崔庆梅 530325********1726 暂无 nan nan nan
李晓燕 530126********0846 暂无 nan nan nan
posted @ 2019-04-25 15:11  loren880898  阅读(1691)  评论(0编辑  收藏  举报