百度图片搜索下载

该博客介绍了如何使用Python的requests库来搜索并下载百度图片。首先,通过构造请求参数并设置headers来模拟浏览器搜索,然后解析返回的JSON数据获取图片URL。最后,使用循环和流式下载将图片保存到本地。此过程涉及到网页抓取、HTTP请求和文件保存等技术。
摘要由CSDN通过智能技术生成

学习浏览器开发者模式

查看百度图片中的图片搜索及下载
利用requests模块构造请求网址,并将图片下载到本地
下面展示一些 内联代码片

通过requests搜索出图片网址,批量下载
// An highlighted block
import requests
import time
from chardet import detect
import json
headers = {

'user-agent': '电脑的请求头'
}


def get_url(n):
    
    url = 'https://m.baidu.com/sf/vsearch/image/search/wisesearchresult?' #这个网址好像是app端的图片搜索网址,刚开始学不太了解
    urls = []
    search_obj = input("请输入你要搜索的图片:")
    for a in range(0,n,30): #我的这个网址的页面变化是30的倍数,所有range的函数中的step用的是30

        data = {'tn': 'wisejsonala',
    'ie': 'utf-8',
    'fromsf': '1',
    'word': search_obj,
    'pn': a,
    'rn': '30',
    'prefresh': 'undefined',
    'searchtype': '0',
    'fromfilter': '0',
    'tagname': '全部',
    'subject_type': '6',
    'entityname': search_obj,
    'tpltype': '0'
    }
        res  = requests.get(url=url,headers=headers,params=data)
        coding_ = detect(res.content)['encoding']
        print('*'*20)
        print(coding_)
        print('*'*20)
        res.content.decode(coding_)
        res.encoding = coding_
        
        for i in range(30):
            urls.append(res.json()['linkData'][i]['thumbnailUrl'])
        time.sleep(5)
    return urls

def get_image():
    a = 0
    for url in get_url(100):
        res = requests.get(url=url,headers=headers)
        a += 1
        with open(f'C:\\picture\\{a}.png','wb') as f:
            for chunk in res.iter_content(512): #这个是在requests文档中介绍的流下载,防止那内存过满,不懂哈哈
                f.write(chunk)
        
        print(url)
        print(f'已下载{a}照片')
        time.sleep(1)

if __name__ == '__main__':
    get_image()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值