我正在尝试将 pdf 中的表中的数据读取到 pandas 数据框中。当 pdf 在桌子周围有轮廓时,我可以使用 tabula-py 这样做,但是当我尝试在没有轮廓的 pdf 上时,脚本会产生错误。
例如,我正在查看来自两个不同 url 的 pdf。我已经从网址下载了 pdf,并将它们分别保存为“JSE Opts.pdf”和“JSE Divs.pdf”。
import requests
import pandas as pd
url='https://clientportal.jse.co.za/JSE%20Equity%20Derivatives/Dividends/ED_DividendsReport.pdf'
response = requests.get(url)
fname = 'JSE Divs.pdf'
f= open(fname, 'wb')
f.write(response.content)
f.close()
url='https://clientportal.jse.co.za/JSE%20Equity%20Derivatives/Options%20Daily%20Traded%20Report/ED_OptionsDailyTradedReport.pdf'
response = requests.get(url)
fname = 'JSE Opts.pdf'
f= open(fname, 'wb')
f.write(response.content)
f.close()
我可以使用以下代码将“JSE Opts.pdf”读入熊猫数据框:
import tabula as tb
pdf = './JSE Opts.pdf'
data = tb.read_pdf(pdf,pages = 1)
data = data[0]
print(data)
当我尝试对“JSE Divs.pdf”执行相同操作时,出现错误并且 tabula-py 只能读取标题:
pdf = './JSE Divs.pdf'
data = tb.read_pdf(pdf,pages = 1)
data = data[0]
print(data)
我怀疑这是因为桌子周围没有线条。如果是这种情况,将“JSE Divs.pdf”中的数据读入熊猫的最佳方法是什么?