PDFPL无法识别表python

PDFPL无法识别表python,python,tabular,pdf-extraction,Python,Tabular,Pdf Extraction,我使用Pdfplumber提取第2页第3节上的表(通常)。但它只在某些pdf上有效,其他则不起作用。对于失败的pdf文件,PDFPL似乎读取的是按钮表,而不是我想要的表 我怎样才能得到这张桌子? 无法使用的pdf链接: 有效的pdf文件链接: 这是我的密码: import pdfplumber pdf = pdfplumber.open("/Users/chueckingmok/Desktop/selenium/Shell Omala 68.pdf") page = pd

我使用Pdfplumber提取第2页第3节上的表(通常)。但它只在某些pdf上有效,其他则不起作用。对于失败的pdf文件,PDFPL似乎读取的是按钮表,而不是我想要的表

我怎样才能得到这张桌子? 无法使用的pdf链接:

有效的pdf文件链接:

这是我的密码:

import pdfplumber
pdf = pdfplumber.open("/Users/chueckingmok/Desktop/selenium/Shell Omala 68.pdf")
page = pdf.pages[1]
table=page.extract_table()

import pandas as pd
df = pd.DataFrame(table[1:], columns=table[0])
df
结果是

但我想在第二页的表格是

然而,这段代码适用于pdfB(我在上面提到过)

顺便说一句,我想在每个pdf中的表格都在第3节

有人能帮忙吗

非常感谢

嘿,这里是解决这个问题的正确方法,但首先请阅读我下面的一些观点

  • 嗯,您使用pdfplumber进行表格提取,但我认为您应该阅读表格设置,当您根据需要阅读表格设置时,您肯定会从中找到答案
  • 到目前为止,我在下面为您的问题提供了完美的解决方案,但首先请正确检查PDFPAPI的文档,您肯定可以从中找到所有答案,我确信,在将来,您不需要问关于使用pdfplumber提取表的问题,因为您肯定会从中找到所有关于表提取以及文本提取、单词提取等其他问题的解决方案
  • 为了更好地理解表设置,您还可以使用可视化调试,这是pdfplumber的最佳功能,可以帮助您了解表设置对表的具体作用以及如何使用表设置提取表
下面是您问题的解决方案

import pandas as pd
import pdfplumber 
pdf = pdfplumber.open("GSAP_msds_01259319.pdf")
p1 = pdf.pages[1]
table = p1.extract_table(table_settings={"vertical_strategy": "lines", 
                                         "horizontal_strategy": "text", 
                                         "snap_tolerance": 4,})
df = pd.DataFrame(table[1:], columns=table[0])
df

嘿,这是解决这个问题的正确方法,但首先请阅读我下面的一些观点

  • 嗯,您使用pdfplumber进行表格提取,但我认为您应该阅读表格设置,当您根据需要阅读表格设置时,您肯定会从中找到答案
  • 到目前为止,我在下面为您的问题提供了完美的解决方案,但首先请正确检查PDFPAPI的文档,您肯定可以从中找到所有答案,我确信,在将来,您不需要问关于使用pdfplumber提取表的问题,因为您肯定会从中找到所有关于表提取以及文本提取、单词提取等其他问题的解决方案
  • 为了更好地理解表设置,您还可以使用可视化调试,这是pdfplumber的最佳功能,可以帮助您了解表设置对表的具体作用以及如何使用表设置提取表
下面是您问题的解决方案

import pandas as pd
import pdfplumber 
pdf = pdfplumber.open("GSAP_msds_01259319.pdf")
p1 = pdf.pages[1]
table = p1.extract_table(table_settings={"vertical_strategy": "lines", 
                                         "horizontal_strategy": "text", 
                                         "snap_tolerance": 4,})
df = pd.DataFrame(table[1:], columns=table[0])
df

你好,Faizan,您如何知道交集公差:1和捕捉公差:4?多谢Shi Faizan,您如何知道相交公差:1和捕捉公差:4?非常感谢