selenium爬虫图片

  • 前言
  • 1. 环境配置
    • 1.1 Anaconda安装
    • 1.2 selenium安装
    • 1.3 google浏览器
    • 1.4 chromedriver配置
  • 2. 爬图片代码
  • 总结

前言

在做目标检测或语义分割时,有时没有找到自己需要的数据集,那么爬虫是一个很有效的方法,selenium可以让浏览器自动下载图片,很方便。

1. 环境配置

1.1 Anaconda安装

请参考我的另一篇文章anaconda安装

1.2 selenium安装

命令行输入

pip install selenium

1.3 google浏览器

下载纯净版,不要双核版,双核版我报错unknown error: Chrome failed to start: crashed,没有调好,可能是版本没有对应好,但是我把版本差不多的都试了一遍,还是不行。安装纯净版,没有报错,直接百度就可以下载。还要注意一点:不要改变默认路径,否则程序会报错,正常路径应该是C:\Users\Administrator\AppData\Local\Google\Chrome\Application

1.4 chromedriver配置

chromedriver下载地址
根据自己google的版本选择合适的,这里可能找不到完全一模一样版本的,可以选择附近的版本,多试几个,对应表如下,v69以上版本直接在下载地址中找。

下载后解压得到chromedriver.exe文件,将其复制到google浏览器安装目录下,并将该目录添加到环境变量path中。

2. 爬图片代码

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
import requestsdef getnamepage(name):b.get('http://image.baidu.com/')search_box=b.find_element_by_id('kw')search_box.send_keys(name)search_box.send_keys(Keys.ENTER)time.sleep(5)def download(imglist,num):# 选取大尺寸ele=b.find_element_by_id('sizeFilter')ActionChains(b).move_to_element(ele).perform()time.sleep(5)ele4=b.find_element_by_xpath('//*[@id="sizeFilter"]/div/div[2]/ul/li[1]')ActionChains(b).move_to_element(ele4).perform()time.sleep(5)ele4.click()time.sleep(5)#打开第一张图片,在此界面中点击左右切换图片ele1=b.find_element_by_xpath('/html/body/div[2]/div[2]/div[4]/div[1]/ul/li[2]/div/a/img') ele1.click()b.switch_to.window(b.window_handles[1])#很重要的一步,切换窗口,否则页面找不到元素,python shell里面是b.switch_to_windowx=1for i in range(1,num+1):#ele3=b.find_element_by_xpath('/html/body/div[1]/div[2]/div/span[2]/span')#ele3.click()#time.sleep(3)#为保险起见,设置一个睡眠和爬取的时间差ele2=b.find_element_by_xpath('//*[@id="currentImg"]')img=ele2.get_attribute('src')#获取当前图片的url链接r=requests.get(img)if r.status_code==200:path='south/%d.jpg'%x     #保存图片的路径,填写自己的print('正在爬取  '+img)with open(path,'wb') as f:f.write(r.content)time.sleep(1)f.close()print('爬取成功')x+=1ele3=b.find_element_by_xpath('//*[@id="container"]/span[2]/span')ele3.click()#time.sleep(3)#跳到下一张else:ele3=b.find_element_by_xpath('//*[@id="container"]/span[2]/span')ele3.click()time.sleep(1)continueif __name__=="__main__":b=webdriver.Chrome(executable_path=r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver')name='猫'#定义要搜索的内容num=6000imglist=[]getnamepage(name)download(imglist,num)b.close()

总结

爬虫还是挺有趣的,以前做的爬虫都没记录,现在都忘了,有点僵硬,之后慢慢补吧。

selenium爬虫图片相关推荐

  1. 【selenium爬虫】用selenium自动化爬虫爬取海贼王动漫图片

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...

  2. Python爬虫(10)selenium爬虫后数据,存入csv、txt并将存入数据并对数据进行查询

    之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Py ...

  3. Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查

    之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Py ...

  4. Crawlab运行selenium爬虫

    上篇文章学习了Crawlab运行scrapy爬虫和单文件爬虫,这次学习Crawlab运行selenium爬虫,我的例子是单文件的. 环境准备 Crawlab虽然自带了一些爬虫用的第三方库,但是不全,总 ...

  5. 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法

    写在前面的话 我们的描述,运用都是基于Ubuntu 的运行环境 Chrome : Version 77.0.3865.90 (Official Build) (64-bit) OS : Ubuntu ...

  6. __init__在python中的用法知乎_python使用selenium爬虫知乎的方法示例

    说起爬虫一般想到的情况是,使用 python 中都通过 requests 库获取网页内容,然后通过 beautifulSoup 进行筛选文档中的标签和内容.但是这样有个问题就是,容易被反扒机制所拦住. ...

  7. python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码

    先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可 ...

  8. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  9. requests+bs4批量爬取反爬虫图片网站

    导读:爬取反爬虫图片网站 预览效果 遇到的问题: 刚开始爬虫的时候,爬取到的所有图片都是一张重定向推广图片 解决办法:在requests请求头headers中配置Referer属性,指向爬取网站的顶级 ...

最新文章

  1. 【OpenCV3】cv::Mat类成员函数详解
  2. 开始一个django项目
  3. sringboot security基本用法
  4. SVN中“txn-current-lock:拒绝访问”错误
  5. 一个适用各类场合的Makefile模板
  6. 作者:郭琨(1985-),女,博士,中国科学院虚拟经济与数据科学研究中心助理研究员...
  7. 基于qtc++设计文本编辑器的代码_文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了...
  8. Ubuntu下如何修改文件或者文件夹的权限
  9. php注册页面 邮件回复,PHP发送邮件确认验证注册功能示例【修改别人邮件类】...
  10. Android中添加手心默认输入法,并能卸载
  11. 关于outlook不能发送126邮件的问题
  12. Android开发实例详解之IMF
  13. 讨厌google.cn怎么办?
  14. Box2d源码学习一之Box2d简介
  15. 三季度企业付款及时性指数发布;北京写字楼供需失衡明年仍会加剧 | 美通企业日报...
  16. 重复博弈reapted games
  17. win10打开蓝牙_学会了这些win10快捷键,可以极大的提高你的工作效率
  18. 当输入 https://www.baidu.com 时,返回页面的过程中发生了什么?
  19. day9-字符串作业
  20. 基于xwiki部署企业内部知识管理平台

热门文章

  1. Doc2Vec计算句子相似度
  2. Python|用matplotlib画太极图
  3. Logism · MIPS文件寄存器 实验
  4. 使用ASP发送飞信的免费短信
  5. 微软Office在线版
  6. 分清ul和li的边界
  7. 英语Insurance或insuraunce保险
  8. python中接口测试垃圾数据如何清理_Python接口测试题(持续更新中)
  9. DuiLib教程--下载和生成
  10. 哥几个哦,今天 我为我们感动了