用漂亮的汤解析整个html表

时间:2020-03-29 22:19:52

标签: pandas beautifulsoup

我正试图用漂亮的汤将HTML表格刮入大熊猫中。

网址为https://www.investing.com/equities/exxon-mobil-income-statement

我在HTML代码(id =“ rrtable”)中标识了该表,但是我一直在努力将其解析并放入熊猫数据框。

该网站返回了403错误,因此我必须首先设置标题以绕过403。

我期望看到一个包含5列和5行财务数据的数据框,但是我只是得到了未解析的标头,没有任何内容。哪里出问题了?

#!/usr/local/bin/python3

import requests
from bs4 import BeautifulSoup
import pandas as pd

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
url = "https://www.investing.com/equities/exxon-mobil-income-statement"
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')

table = soup.find_all(id="rrtable")

df = pd.DataFrame(table)

print(df)

任何帮助将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:1)

import requests
import pandas as pd

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
r = requests.get(
    "https://www.investing.com/equities/exxon-mobil-income-statement", headers=headers)
df = pd.read_html(r.content)[1]

df.to_csv("data.csv", index=False)

输出:view-online

输出样本:

enter image description here