Python实现百度图片的爬取

# -*- encoding: utf-8 -*-
import requests
import os
import urllib

def Search(name,localpath,page):
    #os.makedirs(localpath)  #这里创建文件夹路径,exist_ok=True 指如果有就不创建
    params = {
        'tn':'resultjson_com',
        'catename':'pcindexhot',
        'ipn':'rj',
        'ct':'201326592',
        'is':'',
        'fp':'result',
        'queryWord':'',
        'cl':'2',
        'lm':'-1',
        'ie':'utf-8',
        'oe':'utf-8',
        'adpicid':'',
        'st':'-1',
        'z':'',
        'ic':'0',
        'word':name,
        'face':'0',
        'istype':'2',
        'qc':'',
        'nc':'1',
        'fr':'',
        'pn':'0',
        'rn':'30'
        };
    params['pn'] = '%d' % page
    Request(params,localpath)
    return ;

def Request(param,path):
    searchurl  = 'http://image.baidu.com/search/avatarjson'     #百度图片
    response = requests.get(searchurl,params =param )           #传入请求参数
    json  = response.json()['imgs']                             #每张图片有自己的下载路径
    for i in range(0,len(json)):
        filename = os.path.split(json[i]['objURL'])[1]
        Download(json[i]['objURL'],filename,path)

def Download(url,filename,filepath):
    path = os.path.join(filepath,filename)                      #这里我们还是采用原来的图片
    try:                                                        #有些图片不知道为什么下载不了,所以这里用了try的方式
        urllib.urlretrieve(url,path)
        print('Downloading Images From ', url)
    except:
        print('Downloading None Images!')

#下载的主函数
if __name__ =='__main__':
    name=raw_input("输入要下载的关键词:")
    page_start=raw_input("输入开始下载页码:")
    page_end=int(raw_input("输入要连续下载页码数量:"))+int(page_start)
    for i in range(int(page_start),page_end):
        Search(name,'images/',i)

该代码,根据别人代码改写,加入自定义页码和自定义关键字。

原文章地址:没找到(那个作者也许会很伤心),记得是个怕老虎相关的图片的爬虫。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值