我正试图从http://marine-transportation.capitallink.com/indices/baltic_exchange_history.html?ticker=BDI
抓取一张桌子虽然看起来相当容易,但是我不可能以这样的方式识别表格,以至于我可以抓取它,我无法提取数据。任何人都可以帮助正确识别
import urllib3
import urllib.request
from bs4 import BeautifulSoup
import pandas as pd
import requests
import csv
import re
url = 'http://marine-transportation.capitallink.com/indices/baltic_exchange_history.html?ticker=BDI'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
col = row.find_all('td')
column_1 = col[0].string.strip()
#
date = []
closing_rate = []
#Here i need a reference to the correct table
table = soup.find()
for row in table.find_all('tr')[1:]:
col = row.find_all('td')
column_1 = col[0].string.strip()
date.append(column_1)
column_2 = col[1].string.strip()
closing_rate.append(column_2)
columns = {'date': date, 'closing_rate': ClosingRate}
df = pd.DataFrame(columns)
df.to_csv('Baltic_Dry.csv')
答案 0 :(得分:2)
您可以使用唯一样式属性来标识所需的表格。
例如,在此页here上,包含索引数据的表看起来像是550px宽。您可以使用:
soup.findAll('table', width="550")
请注意:我必须在同一个网站上使用另一个页面,因为您发布的页面需要登录。希望页面结构类似。