【问题标题】:Upload a file and handle redirection [PYTHON]上传文件并处理重定向 [PYTHON]
【发布时间】:2020-07-14 18:21:17
【问题描述】:

我需要将图片提交到网站https://zxing.org/w/decode.jspx,并阅读结果页面:https://zxing.org/w/decode

我试过了,但它不起作用:

def decode_qrcode(path):
    s = requests.Session()

    url = "https://zxing.org/w/decode.jspx"
    files = {'file': open(path, 'rb')}
    s.post(url, files=files)
    return s.get("https://zxing.org/w/decode").text

我知道有一些库可以读取 QR 码,但我没有找到任何适用于我使用的那种 QR 码的库(它们的错误率可能不受支持)。

【问题讨论】:

  • 请尽量具体一点。究竟什么“不起作用”?您是否收到错误,请发布完整的 Traceback。还是您的输出不是您所期望的?然后你可以发布你得到的输出和你期望的输出。
  • 当我使用 url(参见下面的选项 1)或文件(参见下面的选项 2)进行发布请求并显示文本时,网站似乎没有考虑 url 或文件...并且当我发出获取请求以显示假定结果页面的内容时,它说我没有提供任何东西。选项 1:pastebin.com/EqMxU53z
  • 另一个结果(选项 1):pastebin.com/30HzBWV3 而对于选项 2:pastebin.com/tbNqfbbA

标签: python post python-requests qr-code


【解决方案1】:

发出POST 请求时,您必须使用allow_redirects 参数

import requests
def decode_qrcode(path):
    s = requests.Session()

    url = "https://zxing.org/w/decode.jspx"
    files = {'file': open(path, 'rb')}
    s.post(url, files=files, allow_redirects = True)
    return s.get("https://zxing.org/w/decode").text

【讨论】:

  • 感谢您的回答!刚刚尝试过,但它也不起作用......我明白了: 错误网址

    您没有指定 URL,或者 URL 无效,或者没有返回图像。在浏览器中“返回”并重试。

    好像它不接受文件...
  • @Lcram33 这意味着问题在于 URL 而不是代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 2019-07-18
  • 2020-04-09
  • 2015-10-29
  • 2011-10-20
相关资源
最近更新 更多