【发布时间】:2021-12-18 01:29:42
【问题描述】:
问题
我正在从 API 请求调用创建大量 URL,然后在循环中使用这些 URL 来抓取 FT 网站上的一些信息。问题是这些 URL 中的一小部分不包含 HTML 表,因此在调用 df_list = pd.read_html(html) 后我收到了 No tables found 错误。不幸的是,在收到此错误消息后,循环停止了。
我想要什么 如果没有找到表并继续循环,我希望能够忽略此错误消息。有没有办法做到这一点?我是 python 和 pandas 的新手,非常感谢您的帮助!
我的代码
import requests
import pandas as pd
import json
# Get the information from SHaresight API
r = requests.get('https://api.sharesight.com/api/v3/custom_investments.json', headers=head)
# print(r)
j = r.json()
urls = []
# Generate urls from above API request
for p in j['custom_investments']:
# print(p)
url = 'https://markets.ft.com/data/funds/tearsheet/historical?s='+p['code']+':'+p['currency_code']
urls.append(url)
dfs = []
# Create scraping loop for all urls
for url in urls:
html = requests.get(url).content
df_list = pd.read_html(html)
df.insert(2, "id", ISIN)
df=df.head(1)
print (df)
dfs.append(df)
【问题讨论】:
-
您应该完成 Python 教程。关于异常处理有e。 G。 w3schools.in/python-tutorial/exception-handling还有一个官方的Python tutorial。
-
谢谢,就我而言,我添加了以下代码:
try: df_list = pd.read_html(html) except Exception: continue这对我有用
标签: python html pandas web-scraping