爬虫实战 您所在的位置:网站首页 禁止爬虫抓取 爬虫实战

爬虫实战

2023-04-02 11:15| 来源: 网络整理| 查看: 265

爬虫实战 -- 批量获取百度图片 原创

阿甘coding 2023-04-01 15:41:47 博主文章分类:Python爬虫 ©著作权

文章标签 下载图片 css 文章分类 数据挖掘 人工智能

©著作权归作者所有:来自51CTO博客作者阿甘coding的原创作品,请联系作者获取转载授权,否则将追究法律责任 程序介绍  

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

实现方法  

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

程序代码  from selenium import webdriver from bs4 import BeautifulSoup import urllib.request import os import time # 设置搜索关键字和保存路径 keyword = "风景" save_path = f'D:/图片/{keyword}/' os.path.exists(save_path) or os.makedirs(save_path) #设置获取图片的数量 limit = 100 num = 0 # 设置浏览器 options = webdriver.ChromeOptions() options.add_argument('headless') browser = webdriver.Chrome(options=options) # 打开百度图片搜索页面 url = 'https://image.baidu.com/' 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 = 1 last_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()

         

收藏 评论 分享 举报

上一篇:爬虫学习 -- 数据存储

下一篇:根据条件批量删除Excel中指定行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有