我正在尝试访问表详细信息,以最终放入dataframe
并另存为来自以下站点的行数有限(数据集很大)的csv
:{{ 3}}
我刚刚开始进行网络抓取,并且正在对此数据集进行练习。我可以有效地拉出div
之类的标签,但是当我尝试soup.findAll('tr')
或td
时,它将返回一个空集。
表似乎被嵌入到不同的代码中(请参见上面的链接),所以这可能是我的问题,但是仍然不确定如何访问详细信息行和标题等,Selenium可能是?
谢谢!
答案 0 :(得分:2)
从外观上看,该网站已允许您导出数据:
看上去,原始链接是:
https://data.cityofchicago.org/Public-Safety/Crimes-2001-to-present/ijzp-q8t2/data
.csv
下载链接是:
https://data.cityofchicago.org/api/views/ijzp-q8t2/rows.csv?accessType=DOWNLOAD
.json
链接是:
https://data.cityofchicago.org/resource/ijzp-q8t2.json
因此,您只需提取数据ID(在这种情况下为ijzp-q8t2
),然后将其替换在上面的下载链接中即可。 Here是其API的官方文档。
import pandas as pd
from sodapy import Socrata
# Unauthenticated client only works with public data sets. Note 'None'
# in place of application token, and no username or password:
client = Socrata("data.cityofchicago.org", None)
# Example authenticated client (needed for non-public datasets):
# client = Socrata(data.cityofchicago.org,
# MyAppToken,
# userame="user@example.com",
# password="AFakePassword")
# First 2000 results, returned as JSON from API / converted to Python list of
# dictionaries by sodapy.
results = client.get("ijzp-q8t2", limit=2000)
# Convert to pandas DataFrame
results_df = pd.DataFrame.from_records(results)