输入关键字搜索并下载图片(从百度)2020.9.19

这篇博客介绍如何利用Python的requests和uuid库来实现从百度搜索关键字并下载图片的功能。通过get_html函数获取网页内容,download函数完成图片下载,主要流程包括库的导入、功能函数的编写和主函数的执行。
摘要由CSDN通过智能技术生成

(1)首先导入requests,uuid,json库

import requests
import json
import uuid
from urllib import parse

#模仿浏览器的请求头
#请求头

headers={'Referer': 'https://image.baidu.com/search/index?tn=b'
                    'aiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word='
                    '%E5%90%B4%E9%9D%92%E5%B3%B0',
         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK'
                       'it/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 S'
                       'afari/537.36 Edg/85.0.564.51','X-Requested-With': 'XMLHttpRequest'}

(2)写get_html函数、download函数

#请求函数
def get_html(url):
    html=requests.get(url,headers=headers)
    if html.status_code==200:
        # print('ok')
        res=html.json()['data']
        for r in res:
            if r:
                print(r['thumbURL'])    #得到url
                download(r['thumbURL'])

        result = html.json()
    else:
        print('error')

#download函数
def download(url):
    img=requests.get(url)
    with open('img/{}.jpg'.format(uuid.uuid4()),'wb') as f:
        chunks=img.iter_content(125)
        for c in chunks:
            f.write(c)

3函数主体

if __name__=="__main__":
    url='https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%90%B4%E9%9D%92%E5%B3%B0&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&word=%E5%90%B4%E9%9D%92%E5%B3%B0&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&cg=star&pn=30&rn=30&gsm=1e&1600526289900='
    url1=parse.unquote(url)
    print(url1)
    #得到
    'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=吴青峰&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&word=吴青峰&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&cg=star&pn=30&rn=30&gsm=1e&1600526289900='
    #可以看出(1)我们改写“吴青峰”这三个关键字,便可以搜索我们所想要的内容
    #       (2)pn=30,容量?将之改写
    key_world=input()
    url2=['https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={0}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&word={0}&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&cg=star&pn={1}&rn=30&gsm=1e&1600526289900='.format(key_world,i) for i in range(30,100,30)]
    for u in url2:
        get_html(u)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值