网页爬虫抓取百度图片(如何用爬虫爬取图片制作自己的数据集?(组图) )

优采云 发布时间: 2022-04-04 16:17

  网页爬虫抓取百度图片(如何用爬虫爬取图片制作自己的数据集?(组图)

)

  相信在学习tensorflow的过程中,你会想尝试自己加载我们的数据集,而不是局限于从数据集中下载数据集。但是模型的训练往往需要非常大的数据集,所以写了这篇博客,教大家如何使用爬虫爬取图片,制作自己的数据集。本博客只教你爬取原创图片数据,以及关于数据增强的博客。楼主再写一篇博文,教大家一些常用的图像处理方法。

  博主使用pycharm2021.3,谷歌浏览器,第三方库文件如下。

  import requests

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from time import sleep

import re

import os

  另外,还需要下载一个驱动文件,chromedriver.exe,下载链接

  下载前,请检查您的浏览器版本。您可以在设置中的关于 chrome 中查看。下载完成后,建议与爬虫文件放在同一目录下。

  

  下面以爬取跑车和卡车图片的例子来教大家。

  第一步是模拟加载网页

  这里使用库selenium.webdriver.chrome.service,用于爬取瀑布网页的源数据。因为瀑布网页的图像数据是实时加载的,所以使用 selenium 中的模拟鼠标滚轮向下滑动加载网页。图片数据方便我们以后爬取。

  #模拟加载网页

s = Service('./chromedriver.exe')

driver = webdriver.Chrome(service=s)

driver.get(

'https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&dyTabStr=MCwzLDYsMSw0LDUsMiw4LDcsOQ%3D%3D&word=%E8%B7%91%E8%BD%A6')

for i in range(0,3):

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

sleep(1)

sleep(3)

page = driver.page_source

  for 循环限制了要抓取的图片数量。博主的设置(0,3)当时是用来测试的,大家可以酌情调整。

  这里设置的sleep是为了给网页加载时间,否则会出现无法抓取数据的情况。

  第二步,匹配图片地址

  正则表达式用于将图像地址保存在列表中。

  #匹配图片地址

ex = 'data-imgurl="(.*?)"'

img_src_list = re.findall(ex,page, re.S)

print(img_src_list)

  第三步,遍历地址,下载图片

  #遍历地址,下载图片

for src in img_src_list:

img_data = requests.get(src).content

img_name = re.search('[0-9]*', src.split(',')[-1])

img_name = img_name.group(0)

img_path = 'image/img_pao' + '/' + img_name + '.jpg'

with open(img_path, 'wb') as fp:

fp.write(img_data)

print('ok')

  我在这里使用 img_path 和我自己的文件名,您可以将其更改为您自己的。

  需要注意的是,在这句话中,我的两个文件夹image和img_pao已经创建好了。

  img_path = 'image/img_pao' + '/' + img_name + '.jpg'

  然后我们跑,我们就完成了。

  

  这里,我们的项目运行后,浏览器会自动打开,提示会由自动测试软件控制。您无需担心,只需观看它以帮助您爬行。

  运行结束,文件夹中会有爬取成功的图片。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线