我有一个场景,用户将 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?
明月笑刀无情
相关分类