我有一个获取no的python脚本。的帖子,关注者和Instagram API。我第一次运行脚本时,它工作得很完美并且给了我所需的数据。 该脚本是: -
for r in range(10,12):
var=r,sheet.cell(row=r,column=2).value
xy=var[1]
ij=str(xy)
myopener=Myopen()
url=myopener.open('https://api.instagram.com/v1/users/'+ij+'/?access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33')
beta=json.loads(url)
item=beta['data']['counts']
data1.append(item['media'])
data2.append(item['followed_by'])
data3.append(item['follows'])
我已将我的FancyURLopener声明如下:=
class Myopen(FancyURLopener):
version='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
第二次运行脚本时,它开始向我显示此错误: -
Traceback (most recent call last):
File "<pyshell#39>", line 7, in <module>
beta=json.load(url)
File "C:\Users\rnair\AppData\Local\Programs\Python\Python35\lib\site- packages\simplejson-3.8.2-py3.5-win-amd64.egg\simplejson\__init__.py", line 455, in load
return loads(fp.read(),
File "C:\Users\rnair\AppData\Local\Programs\Python\Python35\lib\tempfile.py", line 483, in func_wrapper
return func(*args, **kwargs)
ValueError: read of closed file
如何克服这个?我已经使用相同的脚本一个星期了,它从来没有给出任何错误。为什么今天?
答案 0 :(得分:0)
自己找到它!
上面收到的错误是由于: - 很少有Instagram帐户是私人的。因此,不允许对这些帐户进行API调用,并且由于JSON尝试读取它而显示值错误,并且将包含HTTP错误代码400.
为了解决这个问题,我改变了我的代码: -
for r in range(1501,1625):
var=r,sheet.cell(row=r,column=2).value
xy=var[1]
ij=str(xy)
if xy=="Account Deleted":
data1.append('null')
data2.append('null')
data3.append('null')
continue
myopener=Myopen()
url=myopener.open('https://api.instagram.com/v1/users/'+ij+'/?access_token=641567093.1fb234f.a0ffbe574e844e1c818145097050cf33')
if url.getcode() == 400:
data1.append('Private Account')
data2.append('Private Account')
data3.append('Private Account')
continue
else:
beta=json.load(url)
item=beta['data']['counts']
data1.append(item['media'])
data2.append(item['followed_by'])
data3.append(item['follows'])
任何从上面获得帮助的人都可以随时向我询问有关相同的问题!
答案 1 :(得分:0)
我的代码中存在此问题,然后在URL地址中发现了问题。在打开响应之前,请检查您的网址。