我收到以下错误:
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的新手,我一直在浏览本网站上的问答,以回答我的问题.但是,我是初学者,我发现很难理解一些解决方案.我需要一个非常基本的解决方案
有人可以向我解释一个简单的解决方案:"通过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)
有人可以指出错误(初学者级别)并解释任何更简单的方法来做到这一点?
谢谢!
我尝试使用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模块"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.
这里的解决方案也不合适,因为我的情况是下载图像. urllib2.HTTPError:HTTP错误403:禁止
非python解决方案也是受欢迎的.您的建议将非常感谢.
有没有办法使用urllib或Beautiful Soup从网址保存图片?
-谢谢
我在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中制作一个简短的大规模下载程序脚本,以便在本地存储图像列表.
它对于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图像.
这让我有两个问题:
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) 我正在尝试从 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