ITPub博客

首页 > 应用开发 > > Python智能下载百度上的任意图片!无敌的Python啊

Python智能下载百度上的任意图片!无敌的Python啊

作者:nt1979 时间:2019-09-25 15:37:25 0 删除 编辑

自从小编开始每天坚持去写博文和公众号的时候,图片素材的获取就一直困扰着我,每次都需要在百度图库中找很久很久,这种寻找图片,筛选图片的过程,大大消磨了我的精力, 以致于有时会影响到我写作灵感,后来,决心自己用python写个任意图片下载脚本,只需要输入关键字,就可以将相应的图片下载下来,接下来,小编就直接上源码。

私信小编01 获取惊喜新人大礼包 爬虫 进阶 数据分析 都有哦1

#python

#功能:根据输入的关键字,下载百度图片(https://image.baidu.com)中的图片

import requests

from lxml import etree

import re

import os

import threading

from multiprocessing import Pool

#模拟浏览器请求

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

name = input("请输入搜索的关键字:(如风景)")

#1定义函数,获取用户访问的URL

def geturl():

url = 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1539393278843_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word={}'.format(name)

return url

imageurl = geturl()

#2定义函数,获取目标网页源代码中图片的URL

def getimageurl():

rep = requests.get(imageurl,headers=headers)

rep.encoding='utf-8'

rep_result = rep.text

rep_re1 = r'"objURL":"(.*?)"'

re_result_jpg = re.findall(rep_re1,rep_result)

return re_result_jpg

saveimageurl = getimageurl()

#3保存图片到本地

def saveimage():

dir = name

if dir not in os.listdir():

os.makedirs(dir)

try:

for u in saveimageurl:

savename = u[-8:]

end = re.search('(.jpg|.jpeg|.png)$',savename) #搜索图片名的后缀

if end == None: #如果图片名的后缀为空

savename = savename + ".jpg" #给文件名加上jpg的后缀

req_url = requests.get(u,headers=headers).content

print("正在保存图片%s"%savename)

with open('./%s/%s'%(dir,savename),'wb') as filesave:

filesave.write(req_url)

except:

pass

#多线程下载图片,写的有问题

if __name__ =='__main__':

saveimage()

print("文件保存在当前目录下的" + name + "文件夹下面")

上面的代码其实都很简单,只要你有一点python基础,就可以照着写下来的,接着,我们就开始验证了,小编喜欢彭于晏,我们就下载他了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4822/viewspace-3146147/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-05

  • 博文量
    318
  • 访问量
    17318