我想在python中获取API结果的内容 这是一个带有图像的HTML模板。
我尝试了很多方法来获取内容,但每次都不起作用。
功能:
def screenshotlayer(self, access_key, secret_keyword, domain, args):
domain = "http://" + domain
url = "http://api.screenshotlayer.com/api/capture?access_key=API_KEY&url=http://google.com&viewport=1440x900&width=250"
html = urllib2.urlopen(url).read()
print html
soup = BeautifulSoup(html, 'html.parser')
return soup.findAll('img')[0]['src']
当我print html
时,有许多难以理解的角色
有人可以帮我解决这个问题吗?
非常感谢你。
答案 0 :(得分:3)
api不返回html,而是返回原始图像文件(默认为png)。
您需要查看status_code
是否为200,如果是,只需将结果保存到文件中。
import requests
res = requests.get(
'http://api.screenshotlayer.com/api/capture',
params={
'access_key': 'API_KEY',
'url': 'http://google.com&viewport=1440x900&width=250'
}
)
if(res.status_code == 200)
with open('output.png', 'w+b') as f:
f.write(res.content.encode('utf8'))
else:
print('Api returns error: %s' % res.content)