Python Beautifulsoup为所有表标记返回空

Python Beautifulsoup为所有表标记返回空,python,html,selenium,web-scraping,beautifulsoup,Python,Html,Selenium,Web Scraping,Beautifulsoup,我正试图从以下站点访问表的详细信息,最终将其放入数据框,并保存为csv,行数有限(数据集非常庞大): 我刚开始上网,在这个数据集上练习。我可以有效地提取标签,比如div,但是当我尝试soup.findAll('tr')或td时,它返回一个空集 该表似乎嵌入了不同的代码(请参见上面的链接),因此这可能是我的问题,但仍然不确定如何访问详细信息行和标题等,可能是吗 提前谢谢 从外观上看,该网站已经允许您导出数据: 看起来,最初的链接是: https://data.cityofchicago.org/

我正试图从以下站点访问表的详细信息,最终将其放入
数据框
,并保存为
csv
,行数有限(数据集非常庞大):

我刚开始上网,在这个数据集上练习。我可以有效地提取标签,比如
div
,但是当我尝试
soup.findAll('tr')
td
时,它返回一个空集

该表似乎嵌入了不同的代码(请参见上面的链接),因此这可能是我的问题,但仍然不确定如何访问详细信息行和标题等,可能是吗


提前谢谢

从外观上看,该网站已经允许您导出数据:

看起来,最初的链接是:

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
,并在上面的下载链接上替换它。是他们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)

从外观上看,该网站已经允许您导出数据:

看起来,最初的链接是:

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
,并在上面的下载链接上替换它。是他们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)

欢迎来到SO。请花时间阅读,以及该页面上的其他链接。这不是一个讨论论坛。一般来说,您应该包括示例输入和期望的结果,以及有缺陷的代码,描述其缺陷的原因,并解释您在修复过程中排除的问题。如果我们能够以最小的努力复制和粘贴您的问题,测试您的内容,您将得到更多的回答。欢迎使用SO。请花时间阅读,以及该页面上的其他链接。这不是一个讨论论坛。一般来说,您应该包括示例输入和期望的结果,以及有缺陷的代码,描述其缺陷的原因,并解释您在修复过程中排除的问题。如果我们能够以最小的努力复制和粘贴您的问题,以测试您的内容,您将得到更多的回复。感谢您的回复,遇到了一些问题,因此我尝试使用BeautifulSoup。CSV下载太大,无法使用。这是我的最新尝试,好奇我是否正确,以及如何将我的输出转换为更干净的数据帧。从urllib.request import urlopen from bs4 import BELITULSOUP url=”“html=urlopen(url)soup=BELITULSOUP(html,'lxml')打印(soup)输出:[{“id:”11759644“,”案例编号“:”JC351057“,”日期“:”2019-07-13T23:55:00.000“,”块“:”0000X E俄亥俄州街“}不建议使用
beautfulsoup
,因为它用于从网站而不是文档文件中提取信息(请注意
.json
扩展名)。相反,您应该使用类似于
urlib
requests
aiohttp
的内容来处理应用程序的请求部分,以及类似于
json
pandas
的内容来读取数据。希望您使用的是Jupyter笔记本,但如果不是,请帮自己一个忙,并获取它——将进行数据分析更简单。你可以这样做。我强烈建议你体验一下
pandas
——这是Python用于数据分析/操作的主要库之一。然后在绘图时,查看
matplotlib
,这对于大多数用例来说应该已经足够了。但是,在进行任何操作之前,请确保获得Jupyter Notebook。非常感谢Felipe。这是一个简单的解决方案。我肯定想得太多了。我也很感激额外的教育。可能是个愚蠢的问题,但json链接也可以作为csv链接应用,或者在网站的某个地方列出,我错过了它?再次感谢!老实说,我只是更改了扩展名
.json
to
.csv
,看看会发生什么,它似乎仍然有效。如果您试图使用某种
csv
读取器加载
.json
文件,它肯定不会工作(反之亦然)。感谢您的回复,遇到了一些问题,因此我尝试使用BeautifulSoup。CSV下载太大,无法使用。以下是我的最新尝试,我想知道我是否正确,以及如何将输出转换为更干净的数据帧。从urllib.request从bs4导入urlopen导入BeautifulSoup url=”“html=urlopen(url)soup=BeautifulSoup(html,'lxml')打印(soup)输出:[{“id”:“11759644”,“case_number”:“JC351057”,“date”:“2019-07-13T23:55:00.000”,“block”:“0000X E OHIO ST”}不建议对此使用
BeautifulSoup
,因为它用于从网站而不是文档文件中提取信息(注意
.json
扩展名)。相反,您应该使用类似于
urlib
requests
aiohttp
的内容来处理应用程序的请求部分,以及类似于
json
pandas
的内容来读取数据。希望您使用的是Jupyter笔记本,但如果不是,请帮自己一个忙,并获取它——将进行数据分析更简单。你可以这样做。我强烈建议你体验一下
pandas
——这是Python用于数据分析/操作的主要库之一。然后在绘图时,查看
matplotlib
,这对于大多数用例来说应该已经足够了。但是,在进行任何操作之前,请确保获得Jupyter笔记本。非常感谢Felipe。这是一个简单的解决方案。我肯定想得太多了。我也很感激额外的教育。可能是一个愚蠢的问题,但json链接也可以作为csv链接应用,或者在网站某处列出,我错过了它?