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

下载成功结果:

posted @ 2024-01-22 17:21  Magiclala  阅读(4)  评论(0编辑  收藏  举报