【问题标题】:scraping table without table class无表类的刮表
【发布时间】:2021-01-10 07:17:07
【问题描述】:

我试图从https://fxtop.com/en/historical-exchange-rates.php?A=1&C1=USD&C2=IDR&MA=1&DD1=&MM1=08&YYYY1=1995&B=1&P=&I=1&DD2=23&MM2=07&YYYY2=2020&btnOK=Go%21 抓取表格,但我无法抓取数据,因为我找不到表格类,谁能帮助正确的识别?提前谢谢你。

    import pandas as pd
import requests
from bs4 import BeautifulSoup

    url = "https://fxtop.com/en/historical-exchange-rates.php?A=1&C1=USD&C2=IDR&MA=1&DD1=&MM1=08&YYYY1=1995&B=1&P=&I=1&DD2=23&MM2=07&YYYY2=2020&btnOK=Go%21"

    r = requests.get(url)
html = r.text

    soup = BeautifulSoup(html)
table = soup.find('table', border = 1)
print(table)

    result = pd.DataFrame(data, columns=['month', 'average USD/idr=', 'Min USD/IDR=', 'Max USD/IDR=', 'Nb of working days'])

result.to_csv("usd_.csv", index=False)

df = pd.read_csv("usd_.csv")
pd.set_option('display.max_rows', df.shape[0]+1)
print(df)

【问题讨论】:

    标签: python pandas beautifulsoup screen-scraping scrape


    【解决方案1】:
    import pandas as pd
    
    
    df = pd.read_html(
        "https://fxtop.com/en/historical-exchange-rates.php?A=1&C1=USD&C2=IDR&MA=1&DD1=&MM1=08&YYYY1=1995&B=1&P=&I=1&DD2=23&MM2=07&YYYY2=2020&btnOK=Go%21", header=0)[-3]
    
    print(df)
    df.to_csv("data.csv", index=False)
    

    输出:check online

    【讨论】:

      【解决方案2】:

      您可以按类型和任何属性查找元素:

      table = soup.find('table', {"border": "1"})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-09
        • 1970-01-01
        • 2019-08-07
        • 1970-01-01
        • 2016-11-29
        • 2020-07-05
        • 2020-06-10
        相关资源
        最近更新 更多