提取没有class或id的表

时间:2017-05-29 14:09:36

标签: python beautifulsoup

我正试图从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')

1 个答案:

答案 0 :(得分:2)

您可以使用唯一样式属性来标识所需的表格。

例如,在此页here上,包含索引数据的表看起来像是550px宽。您可以使用:

soup.findAll('table', width="550")

请注意:我必须在同一个网站上使用另一个页面,因为您发布的页面需要登录。希望页面结构类似。