def download_image(url, output_dir, image, creds):
cookies = HTTPCookieProcessor()
opener = build_opener(cookies)
install_opener(opener)
data = urlopen("https://ers.cr.usgs.gov").read().decode('utf-8')
m = re.search(r'<input .*?name="csrf_token".*?value="(.*?)"', data)
if m:
token = m.group(1)
else:
print("Error : CSRF_Token not found")
params = urlencode(dict(username=creds['account'], password=creds['passwd'], csrf_token=token))
params = params.encode('ascii')
request = Request("https://ers.cr.usgs.gov/login", params, headers={})
f = urlopen(request)
data = f.read().decode('utf-8')
f.close()
if data.find('You must sign in as a registered user to download data or place orders for USGS EROS products') > 0:
print("Authentification failed")
req = urlopen(url)
uri = req.url
response = requests.get(uri)
if response.status_code == 200:
with open(os.path.join(output_dir, image), 'wb') as f:
for chunk in response.iter_content(chunk_size=1024 * 1024 * 8):
f.write(chunk)
elif response.status_code > 399:
print('Code {}'.format(response.status_code))
raise BadRequestsResponse(Exception)
评论列表
文章目录