Python web crawler(4)图片的下载(单线程)
下载图片(单线程)
import os.path
import requests
# 异步加载数据的接口
url = '************************************.com'
headers = {
'User-Agent': '****************************',
'Cookie': '********************************',
'Referer': '*******************************',
}
response = requests.get(url, headers=headers)
# response.text # 如果返回的是json数据 使用当前方式获取 需要import json json.loads()
data = response.json() # 会直接返回字典 但是需要注意 如果返回数据中不是json数据 则会报错
# print(data['items']) # 获取当前里面的电影数据
path = 'img' # 图片下载路径
if not os.path.exists(path):
os.mkdir(path)
for line in data['items']:
try:
# 图片下载
img_url = line['pic']['normal']
res = requests.get(img_url)
# 图片保存
with open(os.path.join(path, line['title'] + '.jpg'), 'wb') as f:
f.write(res.content)
except:
pass
urllib下载方式:
import os.path
import requests
from urllib import request as r
# 异步加载数据的接口
url = '************************************.com'
headers = {
'User-Agent': '****************************',
'Cookie': '********************************',
'Referer': '*******************************',
}
response = requests.get(url, headers=headers)
data = response.json() # 会直接返回字典 但是需要注意 如果返回数据中不是json数据 则会报错
# print(data['items']) # 获取当前里面的电影数据
path = 'img' # 图片下载路径
if not os.path.exists(path):
os.mkdir(path)
i = 1
for line in data['items']:
try:
# 获取封面路径
img_url = line['pic']['large']
# requests下载方式:
# res = requests.get(img_url)
# with open(os.path.join(path, str(i)+'.jpg'), 'wb') as f:
# f.write(res.content)
# urllib下载方式:
r.urlretrieve(img_url, filename=os.path.join(path, str(i)+'.jpg'))
i += 1
except:
pass
下载成功结果: