爬虫实战批量获取百度图片,在线爬虫百度图片批量保存

程序介绍

我们有时由于工作原因,需要在网上下载大量的图片,下载图片一般是在百度里面下载,先在搜索文本框里面输入图片的关键字,然后点击百度一下,网站会列出大量相关的图片,如果一张一张的下载,非常耗时,现在用Python爬虫批量下载图片。

实现方法

本脚本主要是利用selenium库模拟人工操作,并且通过BeautifulSoup库解析Javascript动态加载的图片列表,再对获取的图片地址进行下载。

程序代码

from selenium import webdriverfrom bs4 import BeautifulSoupimport urllib.requestimport osimport time# 设置搜索关键字和保存路径keyword = "风景"save_path = f'D:/图片/{keyword}/'os.path.exists(save_path) or os.makedirs(save_path)#设置获取图片的数量limit = 100num = 0# 设置浏览器optiOns= webdriver.ChromeOptions()options.add_argument('headless')browser = webdriver.Chrome(optiOns=options)# 打开百度图片搜索页面url = '***/'browser.get(url)# 根据关键字搜索图片search_box = browser.find_element_by_css_selector('#kw')search_box.send_keys(keyword)submit_button = browser.find_element_by_css_selector( '#homeSearchForm > span.s_btn_wr > input.s_newBtn')submit_button.click()# 循环加载图片列表并下载图片scroll_pause_time = 1last_height = browser.execute_script("return document.body.scrollHeight")while True: if num > limit: break # 模拟滚动操作 browser.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(scroll_pause_time) new_height = browser.execute_script("return document.body.scrollHeight") if new_height == last_height: # 如果没有加载更多的图片,则退出循环 break last_height = new_height # 解析网页并下载图片 soup = BeautifulSoup(browser.page_source, 'html.parser') img_list = soup.select('img.main_img') for img in img_list: src = img['src'] if src.startswith('data'): # 跳过base64编码的图片 continue num = num +1 if num>limit: break filename = os.path.join(save_path, keyword+str(num)+'.jpg') try: urllib.request.urlretrieve(src, filename) print("成功下载: " + filename) except: print("下载失败: " + filename)# 关闭浏览器browser.quit()

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 5月 21日 上午11:22
下一篇 2023年 5月 21日 上午11:28

相关推荐

  • 手机内存满了怎么清理出大量内存

    手机是我们日常生活中使用最多的工具,在这个信息社会里,我们一刻也离不开手机,出现了手机内存不足,就会给我们的手机瘫痪,出现手机卡死不动的现象。因此手机内存对手机而言是非常重要的,手…

    互联网 2023年 2月 24日
  • 服务器托管机房 中国电信

      美国作为全球互联网中心的发源地,网络技术能力不可被低估。通常情况下,美国服务器机房从设计布局到安全可靠的一套系统(防火、防震、温湿度、电源供电量)等都有专业严格的标准,管理完善…

    2023年 4月 29日
  • seo和sem的区别在哪里?优势在哪里?该如何选择

    首先,要说一下,SEM和SEO两者是包含关系, 而不是付费广告和自然排名的的并列关系。 很多人搞不清两者的概念,就会出现SEM就是付费广告,SEO是自然排名的不正确理解,并且这种说…

    2023年 2月 21日
  • 百度网盘不开会员速度慢,网盘为什么开了会员还那么慢

    只要不充会员网盘下载速度就慢得离谱你有没有遇到过这种情况近日,官方整顿这一乱象了!11月1日,工信部发布《关于开展信息通信服务感知提升行动的通知》,明确在同一网络条件下,向免费用户…

    2023年 3月 7日
  • 怎么开通新的腾讯创作号

    哈喽大家好,我是闫闫! 昨天发了一篇文章向大家解释了我停更头条这几天是去做了什么,自己如何在停更头条期间还获取了更多收益。 无论是评论区还是后台私信都有小伙伴们问我关于腾讯视频怎么…

    2023年 1月 25日
  • 鸡兔同笼解题方法的意义

    #师者说#何谓直观解题法,就是通过用围棋子等物品或者利用电脑中的WPS表格自己亲自动手摆出答案的解题方法。 首先确认一个问题,孩子对数学的定理和定义以及假设法的理解能力一样吗?不一…

    2023年 7月 12日
  • tp-link路由器怎么用手机设置限速

    软件版本: 软件大小: 软件授权: 适用平台: ***.cn/download/543970.html tplink路由器给手机限速的设置方法 首先,我们连接好路由器之后,打开IE…

    2023年 10月 12日
  • 为什么微信发图原图模糊,p50 pro用微信拍照或模糊

    日常生活或工作中,我们常常会通过微信给朋友、客户发送照片,比如: 跟朋友出去看花展,想分享下美美的照片[鼓掌],我原以为朋友看到的是这样子的, 我发的图 然而,亲爱的看到的是这样子…

    2023年 4月 22日
  • 不用数据线,不联网,手机也能和电脑共享文件吗

    #大有学问#当你们看到这个题目,肯定会疑问:没有数据线连接,不连接网络怎么可能让手机和电脑共享文件呢?其实,确实是真的方法。一起看看吧。 没有网络支持,也不用数据线,手机和电脑之间…

    2023年 8月 25日
  • 王者荣耀上线新社交系统:终于能发红包了,还可一键添加妹纸为QQ好友

    就在刚刚,超好玩菌正扒着饭瞅着手机呢,突然看到小妲己的一个推送。点开一看,好家伙!王者荣耀新版本中全新社交系统上线,不仅能发红包,送礼物卡片还能一键添加QQ好友了。另外好友人数也从…

    2023年 6月 19日