python3-按关键字爬取百度图片

别说话!上代码:

import re,os
import requests
from urllib.request import urlretrieve


def download(url,filename,filepath):
    path = os.path.join(filepath,filename)
    try:
        urlretrieve(url,path)
    except:
        print('【错误】当前图片无法下载')


def search(word="美女",localpath="data/", page=None):
    localpath += word
    os.makedirs(localpath , exist_ok=True)
    url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={word}&pn={pn}&gsm={gsm:x}&ct=&ic=0&lm=-1&width=0&height=0'.format(word=word, pn=20 * page, gsm=40 + 20 * page)

    print("HHHC:0====>page=%d,url=\"%s\"" % (page,url))
    try:
        html = requests.get(url).text
    except:
        print("【错误】requests.get 失败")
        return False
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
    i = 0;
    for url in pic_url:
        print(url)
        i = i + 1;
        filename = os.path.split(url)[1].split('?')[0]
        if len(filename.split(".")) != 2:
            print("【错误】文件名异常:" + filename)
        download(url, filename, localpath)
    return


def search_20_page(word):
    for i in range(1, 30):
        search(word, "data/", i)


def test_search_list():
    obj_list = ["苹果", "香蕉", "桔子", "橙子", "桃子", "樱桃", "龙眼", "荔枝", "雪梨", "草莓", "葡萄", "猕猴桃", "菠萝", "番石榴", "青梅"]
    for obj in obj_list:
        search_20_page(obj)


if __name__ =='__main__':
    test_search_list()

效果:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值