python 百度图片爬虫

# -*- coding:utf-8 -*-
#https://blog.csdn.net/qq_32166627/article/details/60882964
import requests
import os
import pinyin

def getManyPages(keyword,pages):
    params=[]
    for i in range(30,30*pages+30,30):
        params.append({
                      ‘tn‘: ‘resultjson_com‘,
                      ‘ipn‘: ‘rj‘,
                      ‘ct‘: 201326592,
                      ‘is‘: ‘‘,
                      ‘fp‘: ‘result‘,
                      ‘queryWord‘: keyword,
                      ‘cl‘: 2,
                      ‘lm‘: -1,
                      ‘ie‘: ‘utf-8‘,
                      ‘oe‘: ‘utf-8‘,
                      ‘adpicid‘: ‘‘,
                      ‘st‘: -1,
                      ‘z‘: ‘‘,
                      ‘ic‘: 0,
                      ‘word‘: keyword,
                      ‘s‘: ‘‘,
                      ‘se‘: ‘‘,
                      ‘tab‘: ‘‘,
                      ‘width‘: ‘‘,
                      ‘height‘: ‘‘,
                      ‘face‘: 0,
                      ‘istype‘: 2,
                      ‘qc‘: ‘‘,
                      ‘nc‘: 1,
                      ‘fr‘: ‘‘,
                      ‘pn‘: i,
                      ‘rn‘: 30,
                      ‘gsm‘: ‘1e‘,
                      ‘1488942260214‘: ‘‘
                  })
    url = ‘https://image.baidu.com/search/acjson‘
    urls = []
    for i in params:
        urls.append(requests.get(url,params=i).json().get(‘data‘))

    return urls

def getImg(dataList, localPath, keyword):

    if not os.path.exists(localPath):  # 新建文件夹
        os.mkdir(localPath)

    x = 0
    for list in dataList:
        for i in list:
            if i.get(‘thumbURL‘) != None:
                #print(‘download:%s‘ % i.get(‘thumbURL‘))
                print("down "  + keyword + str(x) + " image " + i.get(‘thumbURL‘))
                ir = requests.get(i.get(‘thumbURL‘))
                open(localPath +"/" + keyword +  ‘_%d.jpg‘ % x, ‘wb‘).write(ir.content)
                x += 1
            else:
                print(‘image not exist‘)

# if __name__ == ‘__main__‘:

#     with open("stars_list_clean.txt",‘r‘) as face_file:
#       stars_list = face_file.readlines()
#       index = 0
#       for line in stars_list:
#           line = line.replace(‘\r‘,‘‘).replace(‘\n‘,‘‘).replace(‘\t‘,‘‘)
#           keyword_english = pinyin.get(line, format="strip")
#           keyword = line
#           index += 1
#           if index > 0:
#             break

#     # print(keyword)
#     # keyword1 = ‘胡因梦‘
#     # if keyword == keyword1:
#     #     print("yes")
#     # else:
#     #     print("no")
#     #keyword = ‘胡因梦‘
#     #keyword = keyword.replace(‘\X‘,‘‘)
#     dataList = getManyPages(keyword,2)  # 参数1:关键字,参数2:要下载的页数
#     getImg(dataList,‘./hanxue‘, keyword_english) # 参数2:指定保存的路径

    # keyword = ‘韩雪‘
    # dataList = getManyPages(keyword,10)  # 参数1:关键字,参数2:要下载的页数
    # getImg(dataList,‘./hanxue‘) # 参数2:指定保存的路径

if __name__ == ‘__main__‘:

    #convert()

    #word = input("Input key word: ")
    # print pinyin.get(‘你好‘)#声调
    # print pinyin.get((‘你好‘), format="strip")#无声调
    #stars_list = ["范冰冰", "刘德华","周迅","乔丹"]
    #en = []
    # fp = open("stars_list_en.txt",‘w‘)
    # with open("stars_list.txt",‘r‘) as face_file:
    #     stars_list = face_file.readlines()
    #     for line in stars_list:
    #         print(line[0:-1])
    #         keyword_english = pinyin.get(line[0:-1], format="strip")
    #         print(keyword_english)
    #         en.append(keyword_english)
    #         fp.write(‘%s\n‘ % keyword_english.encode(‘utf-8‘))
    # print(en)

    fp = open("stars_list_en.txt",‘w‘)
    with open("stars_list_clean.txt",‘r‘) as face_file:
        stars_list = face_file.readlines()
        for line in stars_list:
            line = line.replace(‘\r‘,‘‘).replace(‘\n‘,‘‘).replace(‘\t‘,‘‘)
            keyword_english = pinyin.get(line, format="strip")
            fp.write(‘%s\n‘ % keyword_english)
    face_ID_index = 0

    dir = "./stars_srcimg/"

    # if os.path.exists(dir):
    #     os.system("rm -rf " + dir)

    if not os.path.exists(dir):
        os.mkdir(dir)

    pages = 2
    maxnum = pages * 30
    print(maxnum)

    for line in stars_list:
        #line.decode(‘utf-8‘).encode(‘gb2312‘)
        line = line.replace(‘\r‘,‘‘).replace(‘\n‘,‘‘).replace(‘\t‘,‘‘)
        keyword = line
        print keyword
        keyword_english = pinyin.get(keyword, format="strip")
        print keyword_english
        facesavepath = dir + str(face_ID_index) + "_" + keyword_english
        face_ID_index += 1
        print facesavepath
        if not os.path.exists(facesavepath):
            os.mkdir(facesavepath)
        else:
            print(keyword, " exist")
            continue

        dataList = getManyPages(keyword, pages)  # 参数1:关键字,参数2:要下载的页数
        getImg(dataList, facesavepath, keyword_english) # 参数2:指定保存的路径

原文地址:https://www.cnblogs.com/adong7639/p/9074012.html

时间: 2024-11-10 14:52:39

python 百度图片爬虫的相关文章

python写的百度图片爬虫

学了一下python正则表达式,写一个百度图片爬虫玩玩. 当技术遇上心术不正的人,就成我这样的2B青年了. python3.6开发,在Windows下需要安装vc2015动态库.下载地址:http://www.cr173.com/soft/146014.html 1 #/usr/bin/env python 2 #Guoyabin 3 #-*- coding:utf-8 -*- 4 import re,os 5 import requests 6 7 keyword=input('请输入搜索关键

python实现图片爬虫

#encoding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') from sgmllib import SGMLParser import re import urllib class URLLister(SGMLParser): def start_a(self, attrs): url = [v for k, v in attrs if k=='href'] if url : urll = url[0] else :

百度图片爬虫-python版-如何爬取百度图片?

上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫,这个爬虫也是:搜搜gif(在线制作功能点我) 的爬虫代码,其实爬虫整体框架还是差不多的,但就是会涉及到图片的的一些处理,还是花费了我不少时间的,所以我请阅读的本爬虫的孩子还是认真一些,毕竟程序猿都不容易啊.好的,我也不想多说,爬虫的代码我会分享到去转盘网,想下载本爬虫代码的孩子请点我下载,如果没有下

百度图片爬虫

功能说明:依次输入keyword.開始页码,结束页码(每页6张图) 当中,因为设定了timeout和其它错误检測,所以每页不一定6张都能爬下来. 有需求的拿去爬图用吧,仅供交流參考.不要乱爬,以免百度专门封堵.想用的都用不了了. 以后假设有时间再用pyqt做成界面吧. 代码例如以下: #!/usr/bin/env python #! -*- coding: utf-8 -*- import urllib,urllib2 import re import time #返回网页源码 def getH

百度图片小爬虫

刚学习爬虫,写了一个百度图片爬虫当作练习. 环境:python3.6(请下好第三方库requests) 实现的功能:输入关键字,下载240张关键字有关的百度图片到本地的d:\百度图片\关键字\文件夹中. 百度图片的加载是ajax异步形式的,除了前面的一部分图片,后面靠下拉加载的图片都是异步从服务器端请求得到的.这些异步加载的图片的信息可以在一个个acjson的百度图片接口中,可以在开发者工具中xhr下找到这些文件. 接下来上代码: import requestsimport reimport o

【Python网络爬虫四】通过关键字爬取多张百度图片的图片

最近看了女神的新剧<逃避虽然可耻但有用>,同样男主也是一名程序员,所以很有共鸣 被大只萝莉萌的一脸一脸的,我们来爬一爬女神的皂片. 百度搜索结果:新恒结衣 本文主要分为4个部分: 1.下载简单页面 2.爬取多张图片 3.页面解码 4.爬取过程排错处理 1.下载简单页面 通过查看网页的html源码,分析得出,同一张图片共有4种链接: {"thumbURL":"http://img5.imgtn.bdimg.com/it/u=2243348409,3607039200

如何用Python爬虫实现百度图片自动下载?

Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或者XPath表达式 正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页

【Python网络爬虫四】多线程爬取多张百度图片的图片

最近看了女神的新剧<逃避虽然可耻但有用> 被大只萝莉萌的一脸一脸的,我们来爬一爬女神的皂片. 百度搜索结果:新恒结衣 1.下载简单页面 通过查看网页的html源码,分析得出,同一张图片共有4种链接: {"thumbURL":"http://img5.imgtn.bdimg.com/it/u=2243348409,3607039200&fm=23&gp=0.jpg", "middleURL":"http://i

分享百度云链接 Python 3网络爬虫开发实战 ,崔庆才著

分享百度云链接 Python 3网络爬虫开发实战 ,崔庆才著 百度云链接: https://pan.baidu.com/s/1cIB7etdwh8_eybTiatDbQQ 原文地址:http://blog.51cto.com/11018611/2326618