2

首先,作为 Python 新手,我向您提出这个问题表示歉意。它可能与 convertapi 完全无关,更多的是因为我对如何与 API 交互缺乏了解。

我正在阅读 Google 表格以查找包含对文件(PDF、html 等)的引用的嵌入式超链接,然后使用 convertapi 获取 txt 版本,以便我可以根据各种术语的存在、计数和接近度进行内容分析。

我的问题与 convertapi.convert 失败有关,因为(在这种情况下)结果是 convertapi 认为 PDF 无效(因为我已经测试了文件 @ convertapi.com 并且它返回了 5002 错误)。我不认为文件可能是坏的——我想做的就是检测到 convertapi.convert 不能转换文件,这样我就可以忽略它并继续前进。

我的python代码有一个小功能:

def convert_PDF_to_text(inputfilename):
    result = convertapi.convert('txt', { 'File': inputfilename }, from_format = 'pdf')
    result.save_files('converted_pdf_files')

...虽然它适用于某些输入,但有一个特定的 URL PDF 会导致此输出(包括我自己的程序消息):

about to call convertapi.convert with filename (https://www.epa.gov/sites/production/files/2016-06/documents/2016_policy_order_revision_6-10-16.pdf)

是的,这是导致问题的特定文件:https ://www.epa.gov/sites/production/files/2016-06/documents/2016_policy_order_revision_6-10-16.pdf

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/convertapi/client.py", line 46, in handle_response
    r.raise_for_status()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://v2.convertapi.com/convert/pdf/to/txt?Secret=PIuLcqNVL8w4rc9Y

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./p1.py", line 244, in <module>
    convert_PDF_to_text(source_URL)
  File "./p1.py", line 63, in convert_PDF_to_text
    result = convertapi.convert('txt', { 'File': inputfilename }, from_format = 'pdf')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/convertapi/api.py", line 7, in convert
    return task.run()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/convertapi/task.py", line 26, in run
    response = convertapi.client.post(path, params, timeout = timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/convertapi/client.py", line 16, in post
    return self.handle_response(r)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/convertapi/client.py", line 49, in handle_response
    raise ApiError(r.json())
convertapi.exceptions.ApiError: <exception str() failed>

我知道从我应该检查的错误中应该很明显......但我对 Python 和 API 太陌生了,不知道如何破译。

如何测试错误以使我的 Python 代码不会中止?

在此先感谢并再次对基本问题感到抱歉-是的,我确实搜索了答案,但没有找到任何人解决我的问题,这可能太简单了...

4

1 回答 1

0

所有 - 无视。我用 try: & except: 来管理这个。

于 2019-12-07T14:37:08.417 回答