当前位置: 首页 > news >正文

爬虫爬取百度图片、搜狗图片

通过以下代码可以爬取两大图片网站(百度和搜狗)的图片,对于人工智能、深度学习中图片数据的搜集很有帮助!

一、爬取百度图片

        该代码可以爬取任意百度图片中自定义的图片:

import requests
import re
import time
import osdef saveImg(imgurlList, imgOs):for i in imgurlList:try:response = requests.get(url=i).contentexcept:print("error!")else:imgName = i[28: 36]with open(imgOs + imgName + ".jpg", "wb") as file:file.write(response)print(i + " 下载完成!!")def get_asjson(page, gsm, word):url = f"https://image.baidu.com/search/acjson?tn=resultjson_com&logid=9123806616981181340&ipn=rj&ct=201326592&is=&fp=result&fr=&word={word}&queryWord={word}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn={str(30 * int(page))}&rn=30&gsm={gsm}&{str(int(time.time() * 1000))}="headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36','Referer': 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1637758492843_R&pv=&ic=&nc=1&z=&hd=&latest=&copyright=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&dyTabStr=MCwzLDYsMiw0LDEsNSw4LDcsOQ%3D%3D&ie=utf-8&sid=&word=hello','Cookie': 'BDqhfp=hello%26%26-10-1undefined%26%2628989%26%2635; BAIDUID=0C2336F5F3D356371C46DF079632E0C8:FG=1; BAIDUID_BFESS=0C2336F5F3D356371C46DF079632E0C8:FG=1; BIDUPSID=0C2336F5F3D356371C46DF079632E0C8; __yjs_duid=1_32693704d239fea9266064fc8a3d25631637737833661; PSTM=1637737880; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; userFrom=null; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; delPer=0; PSINO=6; __yjs_st=2_ZGU4ODA5ZTdmNzczMzgxNzRiZWZhNTdkODVkY2E5MzQ3NzM3Nzc2MzZlNjYzZmRiMWVjOTlmNWQzZDA3NWY1MzM2M2NkNjNmMjMzZWVlYzQxNGQ2ODIzYjlkNTdhYTUyZjdhNWQwNjQxZWE1YTI0MWZiNzQ1NTE0N2NlNTgwNjZjODlkNWVlZWI2ZDBkNjUzNmNiZDE3NzUyYTA4ZjkxYjI1NzNhODBjOGZhZTBmMzZkY2IwOWJmNjMxNjEzNmUxYjQxZmZhM2M1ODUzYTFkNTM4NTE5MzZjZjRkODliMTE1MmRmMDY1MjI4OGJiM2I3ZGMzMDdiNjI4MWE3NDgxZV83XzQyODU3N2M0; H_PS_PSSID=35295_34446_35104_31254_35237_35049_34584_34505_35245_34578_34872_26350_35210_35145_22160; indexPageSugList=%5B%22hello%22%2C%22bello%22%2C%22hello%20%22%5D; cleanHistoryStatus=0; ab_sr=1.0.1_MTJmNTIwNGNlNmI5NDg2YmZiZTI1OTM1MGZhNTJhZTZlMzVmODE2NmEwZjg5MjNlZWZjZWY1YTY3ZjQ2Yzc2MWZiNGRlODY2ZDJjOGE3N2RhMzg2NjcxZjEzY2ZiMDQ4ODNjYzgyZTZlNWM2NGQ4YjlhMzBlMWE1ZjU0ZTY2NzAxYmM0ZGRkOTM0MGI3NzUwOWZjODY2ODE5NmU1N2E1Yw=='}response = requests.get(url=url, headers=headers).text + "1111"gsm = re.findall('"gsm":"(.*?)",', response)[0]data = re.findall('"hoverURL":"(.*?)",', response)return gsm, dataif __name__ == "__main__":a = "1e"key_word = "阳台"  # 修改你要爬取的关键字img = key_word + "_img\\"os.mkdir(img)for i in range(1, 2):  #通过改变第二个数,修改要爬取的页数asjson1 = get_asjson(i, a, key_word)saveImg(asjson1[1], img)a = asjson1[0]while True:asjson2 = get_asjson(int(i) + 1, a, key_word)saveImg(asjson2[1], img)a = asjson2[0]break

二、爬取搜狗图片

        该代码可以爬取任意搜狗图片中自定义的图片:

from urllib.parse import quote
import requests# 填入需要搜索的内容
key_word = quote('阳台')# 通过定义page决定爬取多少页,每一页有48张图片
page=50for page in range(1, page):startN=(page-1)*48url = 'https://pic.sogou.com/napi/pc/searchList?mode=1&start={}&xml_len=48&query={}'.format(startN,key_word)response = requests.get(url)json_data = response.json()allData = json_data['data']['items']img_urls=[]i = 0for data in allData:url = data['thumbUrl']img_urls.append(url)i=i+1for num in range(i):data=requests.get(img_urls[num],timeout=5).content# 此处需要修改保存路径with open('C:/Users/wbl/Desktop/AI/pc/L/'+'page'+str(page)+'-'+str(num)+'.jpg','wb')as file:file.write(data)print(num,'下载完成!!')

 其他参考:

百度安全验证icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1764344909652245807&wfr=spider&for=pc


import requests
import re
def download_images(keyword, num):url =';word='+ keyword    html = requests.get(url).text    img_urls = re.findall('"objURL":"(.*?)",', html, re.S)    count = 0    for img_url in img_urls:        if count < num:            print('Downloading:', img_url)            try:                response = requests.get(img_url, timeout=10)                content = response.content                file_name ='./images/'+ str(count)+'.jpg'                with open(file_name,'wb') as f:                    f.write(content)                count += 1            except Exception as e:                print('Error:',e)
if __name__=='__main__':    download_images('美食', 10)

相关文章:

  • cocos2dx ​​Animate3D (一)
  • Java面试-微服务篇-SpringCloud
  • Python语言学习笔记之三(字符编码)
  • 独乐乐不如众乐乐(二)-某汽车零部件厂商IC EMC企业规范
  • 【leetcode】62. 不同路径
  • Flask Session 登录认证模块
  • 打印菱形-第11届蓝桥杯选拔赛Python真题精选
  • 图片转换成pdf格式的软件ABBYY16
  • elasticsearch Connection reset by peer如何处理
  • python爬虫中 HTTP 到 HTTPS 的自动转换
  • colab notebook导出为PDF
  • 利用企业被执行人信息查询API保障商业交易安全
  • 5、Qt:项目中包含多个子项目(.pro)/子模块(.pri)
  • Linux:docker容器操作(4)
  • [网络] 5. TCP 链接的建立与释放~汇总
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Apache Spark Streaming 使用实例
  • echarts花样作死的坑
  • FastReport在线报表设计器工作原理
  • Hibernate【inverse和cascade属性】知识要点
  • java8 Stream Pipelines 浅析
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript创建对象的四种方式
  • Javascript弹出层-初探
  • Java多线程(4):使用线程池执行定时任务
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JS专题之继承
  • Linux各目录及每个目录的详细介绍
  • Puppeteer:浏览器控制器
  • 代理模式
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 汉诺塔算法
  • 一份游戏开发学习路线
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 最近的计划
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​520就是要宠粉,你的心头书我买单
  • ​ArcGIS Pro 如何批量删除字段
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #includecmath
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (c语言)strcpy函数用法
  • (Forward) Music Player: From UI Proposal to Code
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (三)mysql_MYSQL(三)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)Linq学习笔记
  • *Django中的Ajax 纯js的书写样式1
  • .“空心村”成因分析及解决对策122344
  • .NET Micro Framework初体验(二)