在 Python 中迭代并从保存为 excel 文件的 Web 中提取表格

Iterate and extract tables from web saving as excel file in Python

我想从 link here 中迭代并提取 table,然后另存为 excel 文件。

我该怎么做?谢谢。

到目前为止我的代码:

import pandas as pd
import requests
from bs4 import BeautifulSoup
from tabulate import tabulate

url = 'http://zjj.sz.gov.cn/ztfw/gcjs/xmxx/jgysba/'
res = requests.get(url)
soup = BeautifulSoup(res.content,'lxml')
print(soup)

新更新:

from requests import post
import json
import pandas as pd
import numpy as np

headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
        "Referer": "http://zjj.sz.gov.cn/projreg/public/jgys/jgysList.jsp"}
dfs = []
#dfs = pd.DataFrame()

for page in range(0, 10):
    data = {"limit": 100, "offset": page * 100, "pageNumber": page + 1}
    json_arr = requests.post("http://zjj.sz.gov.cn/projreg/public/jgys/webService/getJgysLogList.json", headers = headers, data = data).text
    d = json.loads(json_arr)
    df = pd.read_json(json.dumps(d['rows']) , orient='list')
    dfs.append(df)
    print(dfs)

dfs = pd.concat(dfs)
#
dfs = dfs.loc[:, ~dfs.replace(0, np.nan).isna().all()]
dfs.to_excel('test.xlsx', index = False)

它生成10页和1000行,但有些列值放错了位置,有人知道我哪里做错了吗?谢谢。

所以,使用来自 XHRJSON API 你可以做一个简单的 python post 通过 requests 请求并且你有你的数据。

在参数中有两个,您可以更改它们以获得不同的数据量,limit 是您在请求中获得的对象的编号。 pageNumber 是分页页计数器。

from requests import post
import json

url = 'http://zjj.sz.gov.cn/projreg/public/jgys/webService/getJgysLogList.json'
data = { 'limit' : '100', 'pageNumber' : '1'}
response = post(url, data=d)
response.text

此外,您可以根据需要使用 pandas 创建数据框或创建 excel。