这个程序可以自动从百度图库爬取指定关键字的相关图片,这边使用了re模块来筛选内容、使用urllib中的parse来拼接url(秉着多学多用的想法加上去的其实没必要这么麻烦),并且我在创建了一个UA列表搭配random随机选取任意UA,在爬取到内容后保存在本地。在这个程序中能够获取的图片数量比较少,如果需要大量图片需要使用其他方法进行图片爬取,其实只要在这个程序上再加点东西就行了。

代码如下:

from urllib import parse
from ua import ua_list
import requests
import random
import re
import osclass ImageSpider(object):def __init__(self,keyword):self.url = 'https://image.baidu.com/search/index?tn=baiduimage&cl=2&lm&{}'self.headers = {'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" ,'Accept-Encoding': "gzip, deflate, br",'Accept-Language': "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",'Cookie': r'winWH=%5E6_1442x754; BDIMGISLOGIN=0; BDqhfp=%E7%8C%AB%26%260-10-1undefined%26%260%26%261; PSTM=1667830036; BIDUPSID=1DD2D460CD28A78C61A455B013785648; ZFY=exSvOfzZgzDWqEe7nW:AQ2nlMzk50xWo8ZQrdXJfonjc:C; BAIDUID=87E4BAFD410FCEB2CC9B21C331E40286:FG=1; BAIDUID_BFESS=87E4BAFD410FCEB2CC9B21C331E40286:FG=1; __bid_n=18483a81ae6a021a1d4207; wapbaikedeclare=showed; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=36543_37686_37493_37623_34813_37303_37722_37801_37536_37673_37741_26350_37790; PSINO=6; delPer=0; BAIDU_WISE_UID=wapp_1668874380241_77; BCLID=9001483227611951886; BCLID_BFESS=9001483227611951886; BDSFRCVID=BMIOJeCT5G3oo_TjfDU7bjPcQ2KK0gOTTPjcTR5qJ04BtyCVNwZ1EG0PtOpvTLPbwBlLogKK3mOTH4-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; BDSFRCVID_BFESS=BMIOJeCT5G3oo_TjfDU7bjPcQ2KK0gOTTPjcTR5qJ04BtyCVNwZ1EG0PtOpvTLPbwBlLogKK3mOTH4-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tb4toCtbtD83fP36q45HMt00qxby26nmye79aJ5nQI5nhn7vBpO8bx0fXM5BQPJIte3ion3vQUbmjRO206oay6O3LlO83h5wbaLDKl0MLPbcq-Q2Xh3D5UDjXMnMBMPeamOnaI-E3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDFRD5_aD5JXDNRf-b-XKD600PK8Kb7VbIjqeMnkbft7jtte2-RdQIQhKnvHKJcmHUD4yU42bU473b3B5h3NJ66ZoIbPbPTTSlr6W6QpQT8r5-nj-q3rLIrf5JR1ab3vOIOzXpO1jKuzBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksD-FtqjtjJRCjoK_bf-3bfTrP-trf5DCShUFs0MLJB2Q-5M-a3KOoDU72M4jUDftVMR32Q6jiWbRM2MbmLncjSM_GKfC2jMD32tbpWJbztmTxoUJ2B-J-ShRM-RJIhMAebPRiJ-r9Qg-JslQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0hItGDj05D6JM5pJfetjK2CntsJOOaCkV8j6Oy4oT35L1DUnyyh3B5ePDWJo_LnOGhlvoD-Jc3h0rMxbnQjQDWJ4J5tbX0MQFfUFlQft20b0gKhjnWpOab2rQ2n7jWhk5Dq72y58VQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8IjHCeJTLDtnAHoKv5b-0_HRjYbb__-P4DeP5uBxRZ5m7n_l0bab7rSbcIQh_b-4Ir-nLHBMPj52On-UJ_KMbCMtj_D5OI5bFd34TfXjo43bRTLp7MbfbdVbo6L4vdhP-UyNbLWh37JPjlMKoaMp78jR093JO4y4Ldj4oxJpOJ5JbMopCafJOKHICmDj0beM5; H_BDCLCKID_SF_BFESS=tb4toCtbtD83fP36q45HMt00qxby26nmye79aJ5nQI5nhn7vBpO8bx0fXM5BQPJIte3ion3vQUbmjRO206oay6O3LlO83h5wbaLDKl0MLPbcq-Q2Xh3D5UDjXMnMBMPeamOnaI-E3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDFRD5_aD5JXDNRf-b-XKD600PK8Kb7VbIjqeMnkbft7jtte2-RdQIQhKnvHKJcmHUD4yU42bU473b3B5h3NJ66ZoIbPbPTTSlr6W6QpQT8r5-nj-q3rLIrf5JR1ab3vOIOzXpO1jKuzBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksD-FtqjtjJRCjoK_bf-3bfTrP-trf5DCShUFs0MLJB2Q-5M-a3KOoDU72M4jUDftVMR32Q6jiWbRM2MbmLncjSM_GKfC2jMD32tbpWJbztmTxoUJ2B-J-ShRM-RJIhMAebPRiJ-r9Qg-JslQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0hItGDj05D6JM5pJfetjK2CntsJOOaCkV8j6Oy4oT35L1DUnyyh3B5ePDWJo_LnOGhlvoD-Jc3h0rMxbnQjQDWJ4J5tbX0MQFfUFlQft20b0gKhjnWpOab2rQ2n7jWhk5Dq72y58VQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8IjHCeJTLDtnAHoKv5b-0_HRjYbb__-P4DeP5uBxRZ5m7n_l0bab7rSbcIQh_b-4Ir-nLHBMPj52On-UJ_KMbCMtj_D5OI5bFd34TfXjo43bRTLp7MbfbdVbo6L4vdhP-UyNbLWh37JPjlMKoaMp78jR093JO4y4Ldj4oxJpOJ5JbMopCafJOKHICmDj0beM5; BDRCVFR[X_XKQks0S63]=mk3SLVN4HKm; RT="z=1&dm=baidu.com&si=08fda187-ac48-489e-a20c-8a5f8388d197&ss=lao4pplx&sl=2q&tt=2gbw&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=2nc5p&ul=lwpdv&hd=lwphz"; firstShowTip=1; BDRCVFR[Q5XHKaSBNfR]=mk3SLVN4HKm; BDRCVFR[tox4WRQ4-Km]=mk3SLVN4HKm; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; indexPageSugList=%5B%22%E7%8C%AB%22%5D; cleanHistoryStatus=0; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; userFrom=null; ab_sr=1.0.1_OWU5MTEzNjJjNWZmNDZlZGQ5OGIwNjRmNmRmMGJiN2MzZGE3Y2ZhNzM4ODUwODg2ZGU1MWQ4OTU0YWQwMWNmMjM4NzgwZmMwMDBmMTlhMWYwOWI0OGI0YjRlMjU2OTI5NTdlOWRiNjA1NjU1YzAzNWZiZjRjN2M1MjU1OTg0ZGY0ZjgxNjM4NTYyYmNmZTc0ZWYzY2NiNzIxZjBkM2RlOA==','User-Agent' : random.choice(ua_list)}self.params = {'word' : keyword,'oq' : keyword}def request_html(self):full_url = self.url.format(parse.urlencode(self.params)) #拼接urlresponse = requests.get(url=full_url,headers=self.headers)response.encoding = 'utf-8'return response.textdef parase_data(self):content = self.request_html()pattern = re.compile('"hoverURL":"(.*?)"', re.S)link_list = pattern.findall(content)return link_listdef run(self):url_list = self.parase_data()for x in range(1,21):response = requests.get(url=url_list[x],headers=self.headers)path = f"./save-webpage/{self.params['word']}/{self.params['word']}-{x}.jpg"if not os.path.exists(f"./save-webpage/{self.params['word']}"):os.makedirs(f"./save-webpage/{self.params['word']}/")with open(path,"wb") as f:f.write(response.content)print(f"{self.params['word']}-{x}.jpg -- 成功")if __name__ == '__main__':keyword = input("请输入关键词:")spider = ImageSpider(keyword=keyword)spider.run()

基于python获取少量图片的简单代码相关推荐

  1. python中的doc_基于Python获取docx/doc文件内容代码解析

    这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 整体思路: 下载文件并修改后缀 ...

  2. python如何获取图片的尺寸_如何基于Python获取图片的物理尺寸

    如何基于Python获取图片的物理尺寸 这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 ...

  3. thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...

    前言:近期,Tengine团队加班加点,好消息接踵而来,OpenCV 4.3.0发布,OPEN AI LAB AIoT智能开发平台Tengine与OpenCV合作共同加速边缘智能,Tengine再获业 ...

  4. qpython获取手机gps_基于Python获取照片的GPS位置信息

    这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 昨天听人说,用手机拍照会带着GPS信息,原 ...

  5. python 人像素描_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  6. python画素描画_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  7. python获取网页图片_python抓取网页中的图片示例

    python抓取网页中的图片示例 代码如下: #coding:utf8 import re import urllib def getHTML(url): page = urllib.urlopen( ...

  8. python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例

    这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近我们商城上架的应用越来越丰富了. ...

  9. python扫雷的代码及原理_基于Python实现的扫雷游戏实例代码

    摘要:这篇Python开发技术栏目下的"基于Python实现的扫雷游戏实例代码",介绍的技术点是"Python实现.Python.实例代码.扫雷游戏.扫雷.游戏" ...

最新文章

  1. GitHub 标星 7k+,面试官的灵魂 50 问,问到你怀疑人生!
  2. 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17
  3. Hive客户端secureCRT中文显示设置
  4. hibernate教程--一级缓存
  5. java security 详解_Spring Security入门教程 通俗易懂 超详细 【内含案例】
  6. [Python人工智能] 七.什么是过拟合及dropout解决神经网络中的过拟合问题
  7. document builder how is document url being generated
  8. python爱心代码制作_Python之——爱心代码参与情人节
  9. 4种不同类别的机器学习概述
  10. 发送get请求php,如何利用PHP发送GET请求
  11. DBParameter比拼接字符串慢的解决办法
  12. cockroachdb设计翻译
  13. python排序算法——快速排序时间复杂度O(nlogn)
  14. 百度万年历接口实现和分析
  15. sed替换字符串的贪婪匹配和最小匹配
  16. 尚硅谷java学习笔记第五天(数组上)
  17. rss阅读器保存html文件,4款在线RSS阅读器使用体验
  18. mysql之通过cmd连接远程数据库
  19. 解决提交到github报错Please tell me who you are.和为不同的项目设置不同的名称
  20. elementUI中table单元格的合并,通用版

热门文章

  1. 投影仪服务器注册商标属于哪类,投影仪商标注册第几类?附:好听的投影仪商标名字...
  2. 线上服务器崩溃,线下门店破万,社交新宠「剧本杀」是如何迅速爆火的?
  3. 厄尔米特矩阵特征值为实数证明
  4. 开机自动播放视频,开机就自动播放视频,开机自动播放u盘视频
  5. 网赚点击通用教程! - 健康程序员,至尚生活!
  6. 为什么快捷指令无法将媒体转换为文本_CAD一些操作技巧(快捷键)
  7. Winamp输入模块编写详解
  8. Django进阶 Django REST framework+Vue 打造生鲜超市第一天 搭建环境
  9. 手把手MATLAB 简单连续信号表示 指数 正弦 抽样 矩形 三角波 信号
  10. php sku 代码编写,php – 在单个产品页面中显示SKU下的自定义字段值