Python爬虫 打造 图片下载器

环境 : win10, python3.6, pycharm
代码:

import requests
import re
import os

url = 'http://image.baidu.com/search/index'

# 下载函数
def get_img():
    # 请求头
    kv = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0',
    'Accept': 'text/plain, */*; q=0.01',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate',
    'X-Requested-With': 'XMLHttpRequest',
    'Referer': 'http://image.baidu.com/search/index?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs3&word=%E5%94%AF%E7%BE%8E%E6%84%8F%E5%A2%83%E5%9B%BE%E7%89%87&ofr=%E9%AB%98%E6%B8%85%E6%91%84%E5%BD%B1',
    'Cookie': 'BDqhfp=%E5%94%AF%E7%BE%8E%E6%84%8F%E5%A2%83%E5%9B%BE%E7%89%87%26%26NaN-1undefined-1undefined%26%260%26%261; Hm_lvt_737dbb498415dd39d8abf5bc2404b290=1455016371,1455712809,1455769605,1455772886; PSTM=1454309602; BAIDUID=E5493FD55CFE5424BA25B1996943B3B6:FG=1; BIDUPSID=B7D6D9EFA208B7B8C7CB6EF8F827BD4E; BDUSS=VSeFB6UXBmRWc3UEdFeXhKOFRvQm4ySmVmTkVEN2N0bldnM2o5RHdyaE54ZDlXQVFBQUFBJCQAAAAAAAAAAAEAAABzhCtU3Mbj5cfl0e8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE04uFZNOLhWZW; H_PS_PSSID=1447_18282_17946_15479_12166_18086_10634; Hm_lpvt_737dbb498415dd39d8abf5bc2404b290=1455788775; firstShowTip=1; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm',
    'Connection': 'keep-alive'
    }
    # 声明全局变量
    global date,num,name
    # 获取图片所有url信息
    page = requests.get(url, date, headers=kv).text
    imglist = re.findall(r'http://.*?\.jpg', page)[::3]
    # 以相对路径创建文件夹
    root = ".//%s//" % name
    if not os.path.exists(root):
        os.mkdir(root)
    # 下载
    for imgurl in imglist:
        path = root + str(num) + '.jpg'
        with open(path, 'wb') as file:
            file.write(requests.get(imgurl,headers=kv).content)
            num += 1

if __name__ == '__main__':
    num = 1
    name = input('请输入您需要下载的内容:')
    # 批量下载 这里是41页的内容
    for i in range(1,41):
        date = {
            'cl': '2',
            'ct': '201326592',
            'fp': 'result',
            'gsm': '1e',
            'ie': 'utf-8',
            'ipn': 'rj',
            'istype': '2',
            'lm': '-1',
            'nc': '1',
            'oe': 'utf-8',
            'pn': i*30,
            'queryword': name,
            'rn': '30',
            'st': '-1',
            'tn': 'resultjson_com',
            'word': name
        }
        get_img()
        print('\r当前速度 :{: .2f} % '.format((i/40)*100), end ='')

打包成exe文件操作 : (源文件 文件名是Picture.py)

pyinstaller -F Picture.py

ps : 如果想讲图片打包成exe文件的外貌可以加上 -i 123.ico 参数
其中123.ico 是图片文件名(可以在线将jpg文件转为ico文件)
Example

猜你喜欢

转载自blog.csdn.net/qq_40258748/article/details/88583823