首先,作为 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 代码不会中止?
在此先感谢并再次对基本问题感到抱歉-是的,我确实搜索了答案,但没有找到任何人解决我的问题,这可能太简单了...