Python依据单个关键词爬取百度图片
最近由于工作需要要使用大量的水果蔬菜图片,故萌生使用爬虫抓取百度图片的想法,并未用于商业用途,只是为了测试数据。所以并未使用多线程、框架等技术。
由于百度图片是动态加载的,发现搜索关键词后action的参数很相似,故使用requests.get(url , params=)函数去获取内容。并正则提取到所有的图片链接,再将这些图片写入文件夹中。
开始和网上的资料中使用的获取json字符串,但是有些关键词会提示无法解析json,多次尝试后未果故放弃提取json改为正则匹配。
import requests
import re
import osdef getIntPages(keyword, pages):params = []for i in range(30, 30*pages+30, 30):params.append({'tn':'resultjson_com','ipn': 'rj','ct':'201326592','is': '','fp': 'result','queryWord': keyword,'cl': '2','lm': '-1','ie': 'utf-8','oe': 'utf-8','st': '-1','ic': '0','word': keyword,'face': '0','istype': '2','nc': '1','pn': i,'rn': '30'})url = 'https://image.baidu.com/search/acjson'urls = []for i in params:content = requests.get(url, params=i).textimg_urls = re.findall(r'"thumbURL":"(.*?)"', content)#正则获取方法urls.append(img_urls)#urls.append(requests.get(url,params = i).json().get('data'))开始尝试的json提取方法#print("%d times : " % x, img_urls)return urlsdef fetch_img(path,dataList):if not os.path.exists(path):os.mkdir(path)x = 0for list in dataList:for i in list:print("=====downloading %d/1500=====" % (x + 1))ir = requests.get(i)open(path + '%d.jpg' % x, 'wb').write(ir.content)x += 1if __name__ == '__main__':url = 'https://image.baidu.com/search/acjson'dataList = getIntPages('蔬菜', 50)#依据蔬菜关键词获取50页的图片列表,每页30张图片fetch_img("vegetable/", dataList)#存取图片
该爬虫还有很多地方可以改进,如 :
1.多个关键词的搜索尝试
2.是否可以使用多线程框架提高抓取速度
Python依据单个关键词爬取百度图片相关推荐
- 使用python和PyQt5编写爬取百度图片的界面工具
使用python和PyQt5编写爬取百度图片的界面工具 本篇文章的主要内容是展示我个人编写的,以界面小工具的方式爬取百度上面的图片,功能很单一,根据关键词爬取图片,代码很简单,新手上路请多指教. 代码 ...
- python pil保存图片_python爬取百度图片并保存到本地
安装scrapy pip install Scrapy 进入终端,切换到自己项目代码的工作空间下,执行 scrapy startproject baidu_pic_spider 生成如下工程文件: i ...
- python3.7 根据关键词 爬取百度图片并下载到本地
URL地址:http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1 ...
- 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)
源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...
- Python 爬虫实例(1)—— 爬取百度图片
爬取百度图片 在Python 2.7上运行 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: loveNightimport json ...
- Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片
Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...
- Python爬取百度图片搜索结果
爬取百度图片搜索的图片,我们先需要分析其访问 URL,我们在搜索页面,比如搜索 "abc" ,打开 F12 调试,下拉结果页面页,查看网络请求,在其中我们可以找到这样一个请求 ht ...
- Python 3.5_简单上手、爬取百度图片的高清原图
利用工作之余的时间,学习Python差不多也有小一个月的时间了,路漫漫其修远兮,我依然是只菜鸟. 感觉学习新技术确实是一个痛并快乐着的过程,在此分享些心得和收获,并贴一个爬取百度图片原图的代码. 代码 ...
- 如何使用python爬取百度图片_python实现爬取百度图片的方法示例
本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests ...
最新文章
- 妥~阿里程序员常用的 15 款开发者工具
- BERT完全指南-从原理到实践
- 自由自在休闲食品带给小资的冰淇淋生活
- 深入理解 Android 的 IPC 机制--------Binder
- 比较两个时间字符串的大小
- 一条nginx命令引发的对于容器的思考
- maven 按业务拆分模块_Maven模块拆分方法
- UWP开发---通过委托跨页面导航
- WPS-JS宏开发-基础知识-01-初识
- java 加密方式_Get史上最优雅的加密方式!没有之一!
- COVID-19检测方法汇总
- 比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!
- mybatis拦截器实现数据脱敏拦截器使用
- (字节流与字符流)OutputStream字节输出流
- nginx安装配置 linux
- 【SpringBoot学习】39、SpringBoot 集成 wxJava 微信小程序:订单支付
- android点击按钮打开相册,打开相机的代码
- Mac 安装 node.js 并进行配置
- JAVA多线程信号量Semaphore
- Java/Android中SHA1和SHA256加密
热门文章
- 智能仓储管理(WMS)系统建设理念
- Additive Angular Margin Loss (ArcFace) 附加角裕度损失的进阶之路
- 第一次安装win10+ubuntu双系统的经验及踩过的坑
- 【C编程】找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,
- ie加载项存在残留是什么_[IE]什么是加载项
- 流放者柯南服务器搭建虚拟机,流放者柯南服务器搭建教程
- android 对象的创建,android – 如何使用嵌套对象创建一个类Parcelable
- 快来薅羊毛,轻量、快捷、低使用门槛的PaaS平台在这里
- ubuntu16.04 无法输入中文的问题终于解决了
- 犀思云SD-WAN,助力企业分钟级构建新型混合专网