python - 如何从 URL 读取图像(urllib.error.HTTPError:HTTP 错误 403:禁止)
问题描述
我有一个返回图像(API)的代码:
url1 = "https://api.twilio.com/2010-04-01/Accounts/AC9567862a70d7b000488e8ba80bc19787/Messages/MMebd9e089637c2c740608199af762fc19/Media/ME49a13b9e0732d78b384fe81d6c3c3"
在浏览器上手动打开图片会自动将https地址转换为如下:
url2 = "https://s3-external-1.amazonaws.com/media.twiliocdn.com/AC9567862a70d7b000488e8ba80bc19787/f28ad1174d0871048be68207a88d5cea"
from skimage import io
img = io.imread(url1) # < ---- error here
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
text = pytesseract.image_to_string(img)
我正在尝试从 url1 读取图像并对图像执行 OCR。(即直接从(url1)读取图像,无需在浏览器上打开并使用备用地址)
但是,io.imread(url1) 给出错误“urllib.error.HTTPError: HTTP Error 403: Forbidden”。
io.imread(url2) 不返回任何错误。
有没有办法直接从 url1 读取图像?
解决方案
您可以在第二行中使用此代码,因为 skimage.io.imread() 将 URL 作为字符串输入。
img = io.imread(String(URL))
您也可以改用 cv2 模块。
# importing OpenCV(cv2) module
import cv2
img = cv2.imread(URL)
# Output img with window name as 'image'
cv2.imshow('image', img)
推荐阅读
- amazon-web-services - 如何在容器中运行 AWS SAM CLI,因为它需要运行“docker”守护程序?
- c++ - 具有两种(或更多)语言的字典并在代码运行时更改它
- tensorflow - 为什么某些隐藏单元在 GRU 自动编码器中返回零?
- time-complexity - 如何使用 dafny 证明冒泡排序的时间复杂度?
- lstm - 不记得 LSTM 的过去
- node.js - 为在 Azure 上运行的节点应用启用 gzip
- angular - 如何在延迟加载primeng表中进行客户端过滤
- elm - Same row height for all table columns using elm-ui
- python - Every one of my genetic algorithm models mutates in the same way
- python - create a timer using python.i cant understand the logic used to build a timer that prints "ok" after every 2 seconds in python. #while_loop