从 Slack 获取 PDF 文件 url 并在 Python 中转换为 base64

我有一个场景,用户将 PDF 上传到 Slack 机器人。我从 Slack 响应中获取 URL 并将其传递给 Base64 编码器。编码器看起来像:

def convertPdfToBase64(url):
    page = urllib.request.Request(url,headers={'User-Agent': 'Mozilla/5.0'})
    encoded_string = base64.b64encode(urllib.request.urlopen(page).read()).decode("utf-8")
        return encoded_string

当我将 URL 传递给 ConvertPdfToBase64() 时,它会以 HTML 文档而不是 PDF 的形式返回编码字符串。我什至尝试获取重定向的 URL,但没有成功。

Slack 响应 URL 示例: https://files.slack.com/files-pri/T01ASGU49-F01BPN6GSFM/file__1_.pdf

来自 requests.head() 的重定向 URL: https://microsoft-rm67093.slack.com/ ?redir=%2Ffiles-pri%2FT01AU49-F01BPSFM%2Ffile__1_.pdf

r = requests.head('https://files.slack.com/files-pri/T01ASGU49-F01BPN6GSFM/file__1_.pdf', allow_redirects=True)
print(r.url)

但是,当我获取最初从响应中获得的 URL 并将其粘贴到浏览器中时,它会重定向到与我从 requests.head() 获得的链接不同的链接,并且在将该 URL 传递给 ConvertPdfToBase64() 后,我得到了正确的 Base64 编码字符串。

浏览器重定向至: https://slack-files.com/files-pri-safe/T01ASG1PU49-F01BGSFM/file__1_.pdf ?c=16014784-3a7c2a18cefbef

我在这里缺少什么?如何获取浏览器重定向的URL?


RISEBY
浏览 86回答 1
1回答

明月笑刀无情

添加 page.add_header('Authorization', 'Bearer ' + token) 有效。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python