相关疑难解决方法(0)

urllib和"SSL:CERTIFICATE_VERIFY_FAILED"错误

我收到以下错误:

Exception in thread Thread-3:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in        __bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in  run
self.__target(*self.__args, **self.__kwargs)
File "/Users/Matthew/Desktop/Skypebot 2.0/bot.py", line 271, in process
info = urllib2.urlopen(req).read()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File …
Run Code Online (Sandbox Code Playgroud)

python ssl urllib ssl-certificate python-2.7

250
推荐指数
19
解决办法
55万
查看次数

基本的http文件下载并保存到python中的磁盘?

我是Python的新手,我一直在浏览本网站上的问答,以回答我的问题.但是,我是初学者,我发现很难理解一些解决方案.我需要一个非常基本的解决方案

有人可以向我解释一个简单的解决方案:"通过http下载文件"和"将其保存到Windows中的磁盘"吗?

我也不确定如何使用shutil和os模块.

我想下载的文件不到500 MB,是一个.gz存档文件.如果有人可以解释如何提取存档并利用其中的文件,那就太棒了!

这是一个部分解决方案,我从各种答案中总结出来:

import requests
import os
import shutil

global dump

def download_file():
    global dump
    url = "http://randomsite.com/file.gz"
    file = requests.get(url, stream=True)
    dump = file.raw

def save_file():
    global dump
    location = os.path.abspath("D:\folder\file.gz")
    with open("file.gz", 'wb') as location:
        shutil.copyfileobj(dump, location)
    del dump
Run Code Online (Sandbox Code Playgroud)

有人可以指出错误(初学者级别)并解释任何更简单的方法来做到这一点?

谢谢!

python file download save

141
推荐指数
6
解决办法
27万
查看次数

使用裸露的'除外'有什么问题?

我尝试使用PyAutoGui创建一个函数来检查屏幕上是否显示图像,并提出了这个:

def check_image_on_screen(image):
    try:
        pyautogui.locateCenterOnScreen(image)
        return True
    except:
        return False
Run Code Online (Sandbox Code Playgroud)

它工作正常,但PyCharm告诉我,我不应该except裸露.把它留下来有什么问题?有没有更合适的方法来创建相同的功能?

python except bare pyautogui

15
推荐指数
2
解决办法
5299
查看次数

使用python urllib从url下载映像但接收HTTP错误403:禁止

我想使用python模块"urllib.request"从网址下载图像文件,该模块适用于某些网站(例如mangastream.com),但不适用于另一个(mangadoom.co)接收错误"HTTP错误403:禁止" .后一种情况可能会出现什么问题以及如何解决?

我在OSX上使用python3.4.

import urllib.request

# does not work
img_url = 'http://mangadoom.co/wp-content/manga/5170/886/005.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
Run Code Online (Sandbox Code Playgroud)

在错误消息的末尾,它说:

... 
HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud)

但是,它适用于其他网站

# work
img_url = 'http://img.mangastream.com/cdn/manga/51/3140/006.png'
img_filename = 'my_img.png'
urllib.request.urlretrieve(img_url, img_filename)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下帖子中的解决方案,但它们都不适用于mangadoom.co.

通过urllib和python下载图片

如何在python中复制远程图像?

这里的解决方案也不合适,因为我的情况是下载图像. urllib2.HTTPError:HTTP错误403:禁止

非python解决方案也是受欢迎的.您的建议将非常感谢.

url image urllib download python-3.x

10
推荐指数
3
解决办法
2万
查看次数

Python - 从网址保存图像

有没有办法使用urllib或Beautiful Soup从网址保存图片?

-谢谢

python urllib beautifulsoup

4
推荐指数
1
解决办法
1万
查看次数

使用谷歌自定义搜索API下载图像

我在python中使用google image api下载20个第一个图像结果,代码如下:

import os
import sys
import time
from urllib import FancyURLopener
import urllib2
import simplejson



searchTerm = "Cat"

# Replace spaces ' ' in search term for '%20' in order to comply with request
searchTerm = searchTerm.replace(' ','%20')



# Start FancyURLopener with defined version 
class MyOpener(FancyURLopener): 
    version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
myopener = MyOpener()

# Set count to 0
count=0

for i in range(0,4):
    # Notice that the start changes for …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine json google-custom-search

4
推荐指数
1
解决办法
1万
查看次数

如何在Python 3中使用https URL下载图像?

我试图在Python中制作一个简短的大规模下载程序脚本,以便在本地存储图像列表.

它对于http图像网址非常适用,但无法使用https网址下载任何图像.有问题的代码行是:

import urllib.request
urllib.request.urlretrieve(url, filename)
Run Code Online (Sandbox Code Playgroud)

例如, https://cdn.discordapp.com/attachments/299398003486097412/303580387786096641/FB_IMG_1490534565948.jpg结果HTTP Error 403: Forbidden,以及任何其他https图像.

这让我有两个问题:

  1. 我怎么能用Python下载这样的图像?
  2. 如果图像https基本上只是文件,为什么图像甚至都有网址?

编辑:

这是堆栈跟踪:

Traceback (most recent call last):
  File "img_down.py", line 52, in <module>
    main()
  File "img_down.py", line 38, in main
    save_img(d, l)
  File "img_down.py", line 49, in save_img
    stream = read_img(url)
  File "img_down.py", line 42, in read_img
    with urllib.request.urlopen(url) as response:
  File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, …
Run Code Online (Sandbox Code Playgroud)

python https image download

2
推荐指数
2
解决办法
1万
查看次数

使用python(urllib/urllib2)下载图片很慢

我正在尝试从 scryfall.com 下载魔法收集卡的图像。他们为这个 json 文件提供了关于每张卡片的所有信息(包括其图像的 url)。所以我写了一个代码,从那个 json 文件中读取每个 url,并尝试保存它。问题是,代码的请求部分运行每个图像需要超过 5 分钟,我不知道为什么。(我正在获取的每个图像的大小小于 100kB 并且在浏览器上立即打开)

我试过 urllib.urlretrieve、urllib2.urlopen,都是一样的。尝试在 python2 和 python3 上运行它。

没有错误消息,代码确实有效,只是它花费的时间太长,无法继续执行。

编辑:

a=open("cards.json")
b=a.read()

data=[]
data.append(b)

count=0
for elem in data:
    try:
        content=json.loads(elem)
    except:
        print content
        exit()
    for j in content:
        count=count+1
        if j['layout']=='normal' and j['digital']==False:
            url=str(j['image_uris']['normal'])
            final=url[url.find('normal')+6:]
            print (url)
            print("a")
            i1=urllib.urlretrieve(url)
            print("b")
            i2=i1.read()
            file=open(str(count),'wb')
            file.write(i2)
            file.close()


        if count>5:
            exit()
Run Code Online (Sandbox Code Playgroud)

编辑 2:我正在使用的 json 的链接:https : //archive.scryfall.com/json/scryfall-default-cards.json

python urllib urllib2

1
推荐指数
1
解决办法
1317
查看次数