大家好,新年的第二天,我又开始营业了,最近有同事有需求,需要下载一些图片,搜索关键字,可以直接下载到本地,那么这个代码就是直接可以下载到本地文件夹的。

代码运行之后,输入关键字,输入下载几页图片,然后就会下载到本地的远洋椿萱茂命名的文件夹下。

就可以看到下载的图片了,一共90个

代码如下:

import requests
import os
import urllibclass Spider_baidu_image():def __init__(self):self.url = 'http://image.baidu.com/search/acjson?'self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.\3497.81 Safari/537.36'}self.headers_image = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.\3497.81 Safari/537.36','Referer': 'http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1557124645631_R&pv=&ic=&nc=1&z=&hd=1&latest=0&copyright=0&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&sid=&word=%E8%83%A1%E6%AD%8C'}# self.keyword = '刘亦菲壁纸'self.keyword = input("请输入搜索图片关键字:")self.paginator = int(input("请输入搜索页数,每页30张图片:"))# self.paginator = 50# print(type(self.keyword),self.paginator)# exit()def get_param(self):"""获取url请求的参数,存入列表并返回:return:"""keyword = urllib.parse.quote(self.keyword)params = []for i in range(1, self.paginator + 1):params.append('tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=1&latest=0&copyright=0&word={}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&cg=star&pn={}&rn=30&gsm=78&1557125391211='.format(keyword, keyword, 30 * i))return paramsdef get_urls(self, params):"""由url参数返回各个url拼接后的响应,存入列表并返回:return:"""urls = []for i in params:urls.append(self.url + i)return urlsdef get_image_url(self, urls):image_url = []for url in urls:json_data = requests.get(url, headers=self.headers).json()json_data = json_data.get('data')for i in json_data:if i:image_url.append(i.get('thumbURL'))return image_urldef get_image(self, image_url):"""根据图片url,在本地目录下新建一个以搜索关键字命名的文件夹,然后将每一个图片存入。:param image_url::return:"""cwd = os.getcwd()file_name = os.path.join(cwd, self.keyword)if not os.path.exists(self.keyword):os.mkdir(file_name)for index, url in enumerate(image_url, start=1):with open(file_name + '\\{}.jpg'.format(index), 'wb') as f:f.write(requests.get(url, headers=self.headers_image).content)if index != 0 and index % 30 == 0:print('{}第{}页下载完成'.format(self.keyword, index / 30))def __call__(self, *args, **kwargs):params = self.get_param()urls = self.get_urls(params)image_url = self.get_image_url(urls)self.get_image(image_url)if __name__ == '__main__':spider = Spider_baidu_image()spider()

爬取可搜索百度图片并下载到本地——以远洋椿萱茂词条为例相关推荐

  1. python3爬取30张百度图片大量百度图片【王俊凯】

    python3爬取30张百度图片&大量百度图片[王俊凯] 30张图片(easy!) 好多好多图片! 复习C++之前先玩了一下爬虫,这学期属于是入了小凯的坑爬不出来了qwq 先看结果捏~ 学习了 ...

  2. Python 爬取陈都灵百度图片

    Python 爬取陈都灵百度图片 标签(空格分隔): 随笔 今天意外发现了自己以前写的一篇爬虫脚本,爬取的是我的女神陈都灵,尝试运行了一下发现居然还能用.故把脚本贴出来分享一下. import req ...

  3. Python爬取瀑布流百度图片

    Python爬去瀑布流百度图片 import requests from bs4 import BeautifulSoup import re from urllib.parse import url ...

  4. python3.7 根据关键词 爬取百度图片并下载到本地

    URL地址:http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1 ...

  5. Python爬百度图片并下载到本地实战

    百度图片是Ajax加载的,怎么判断是不是Ajax呢?方法很简单,我们在页面进行某种操作时,网页的链接不会变化,但是内容变了,就可以判定网页内容是Ajax动态加载出来的,例如在浏览百度图片时,鼠标滚轮一 ...

  6. python save保存图片到本地_python爬取网站上的图片并保存到本地

    1.导入需要的模块requests,BeautifulSoup,os(用于文件读写). 2.创建一个类,并初始化. class BeautifulPicture: def __init__(self) ...

  7. Python爬取最爱的电影并下载到本地

    小说.图片.小视频都弄了,今天就下载电影或者电视剧吧,目标网站:https://www.okzyw.com/ 首先进入搜索页面:https://www.okzyw.com/index.php?m=vo ...

  8. 【requests库】爬取Pixiv日榜图片 并保存到本地

    本来计划用BeautifulSoup,但是电脑上的chrome版本不能给网页源代码换行,标签找得让人头大,就改用requests了. 所需库:requests.re 代码如下: import requ ...

  9. python --爬虫爬取学校官网新闻并下载到本地

    IDE:jupyter Notebook python version:python 3.6 目标数据:学校官网新闻(一页) 网址:* 使用到的库:requests urllib re Beautif ...

最新文章

  1. JVM之堆Heap参数调优入门
  2. 让您的Eclipse具有千变万化的外观 1
  3. 人人都能读懂的编译器原理
  4. 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)...
  5. CPU GPU设计工作原理《转》
  6. 将php分页类YII绑定框架,就需要改变风格的基础
  7. 各种泵的图形符号_水泵cad画法
  8. 等保二级和等保三级的三大区别讲解
  9. python实现GPS经纬度转换
  10. 关于360评估的全面介绍
  11. 《Real-Time Rendering 4th Edition》全文翻译 - 第6章 纹理化(上)6.1 ~ 6.3
  12. C#操作MicroSoft Word的代码
  13. 小猿圈分享免费自学编程的10个网站
  14. [OpenCV]关于opencv不能打开某些视频得问题
  15. 【最新】2019年最新青甘大环线攻略收藏版!
  16. Nexus私服安装以及使用教程
  17. CSS实现div的嵌套居中显示的多种方式
  18. Fiddler抓包Android手机https、http教程
  19. 赛门铁克:软件是灵魂
  20. CentOS7安装Proxychains实现linux代理

热门文章

  1. 【2019暑假集训】08.09比赛总结
  2. SQL Server 入门
  3. 如何挑选合适的服务器
  4. 跆拳道反应速度的训练方法(一)
  5. bootstrap3常用的样式介绍
  6. 《移动微技(Mobile Widget)应用开发权威指南》正式出版
  7. L2-021 点赞狂魔 (25分)
  8. 高压放大器在改良电形成装置参数优化中的应用
  9. php语言中find的用法,TP5中find_in_set的用法
  10. 实现科汛CMS在其它模型系统调用当前会员的相册图片和商品