0

コードで pandas を使用して、URL ' http://gsa.nic.in/report/janDhan.html 'からネストされたテーブルを抽出しようとしています:

import pandas as pd
url ="http://gsa.nic.in/report/janDhan.html"
table=pd.read_html(url)[3]
print(table)
table.to_excel("GSA.xlsx")

ただし、テーブルのヘッダーのみを印刷しています。ガイドしてください。私は初心者で、beautifulsoup を使用したくありません。パンダが意図したタスクを実行できない場合、なぜですか?

4

2 に答える 2

0

Eric が指摘したように、テーブルは JavaScript によって取り込まれています。

ただし、Chrome の開発者ツールを使用して、ページが内部で実行している API 呼び出しを傍受するのは非常に簡単です。

[ネットワーク] タブに移動し、XHR でフィルター処理すると、ページが呼び出しを行っているエンドポイントが見つかります。

http://gsa.nic.in/gsaservice/services/service.svc/gsastatereport?schemecode=PMJDY

ここに画像の説明を入力 次に、このような単純なスクリプトにより、適切にフォーマットされたデータが得られます

import json
import pandas as pd
import requests


r = requests.get('http://gsa.nic.in/gsaservice/services/service.svc/gsastatereport?schemecode=PMJDY')
data = json.loads(r.json()['d'])
pd.DataFrame(data[0]['data'])

LGDStateCode    StateName   totalSaturatedVillage   villageSaturatedTillDate    TotalBeneficiaries  TotalBeneficiariesRegisteredTillDate    Saturation
0   28  ANDHRA PRADESH  305 305 27238   27238   100.00
1   12  ARUNACHAL PRADESH   299 283 42331   39999   94.49
2   18  ASSAM   3042    2375    648815  621878  95.85
3   10  BIHAR   635 544 92356   90131   97.5



于 2020-04-17T17:09:19.097 に答える