selenium爬虫图片
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爬虫图片相关推荐
- 【selenium爬虫】用selenium自动化爬虫爬取海贼王动漫图片
以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...
- Python爬虫(10)selenium爬虫后数据,存入csv、txt并将存入数据并对数据进行查询
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Py ...
- Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Py ...
- Crawlab运行selenium爬虫
上篇文章学习了Crawlab运行scrapy爬虫和单文件爬虫,这次学习Crawlab运行selenium爬虫,我的例子是单文件的. 环境准备 Crawlab虽然自带了一些爬虫用的第三方库,但是不全,总 ...
- 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
写在前面的话 我们的描述,运用都是基于Ubuntu 的运行环境 Chrome : Version 77.0.3865.90 (Official Build) (64-bit) OS : Ubuntu ...
- __init__在python中的用法知乎_python使用selenium爬虫知乎的方法示例
说起爬虫一般想到的情况是,使用 python 中都通过 requests 库获取网页内容,然后通过 beautifulSoup 进行筛选文档中的标签和内容.但是这样有个问题就是,容易被反扒机制所拦住. ...
- python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码
先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可 ...
- Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息
由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...
- requests+bs4批量爬取反爬虫图片网站
导读:爬取反爬虫图片网站 预览效果 遇到的问题: 刚开始爬虫的时候,爬取到的所有图片都是一张重定向推广图片 解决办法:在requests请求头headers中配置Referer属性,指向爬取网站的顶级 ...
最新文章
- Rational Rose打开方式
- Web前端基础知识:ES5及ES6this详解
- 制作Scary爬虫步骤
- 学习《apache源代码全景分析》之模块化体系结构摘录
- ON DUPLICATE KEY UPDATE 附带更新条件
- java -PDF添加文本水印与图片水印
- 洛谷2619/bzoj2654 Tree(凸优化+MST)
- STL中sort排序的简单使用
- Cocos2d-x windows + vs2010 配置图文详解
- windows Hadoop环境搭建之一---软件准备
- iPad最新型笔刷,足足五种分类,几百款
- 听中科院研究员袁亚湘报告心得体会
- 吐血推荐一大波让你直呼哇塞的Canvas库
- LA4670 Dominating Patterns(AC自动机)
- python中用sympy对变量求偏导
- 屏幕处理效果—调整屏幕的亮度,饱和度和对比度
- U盘不显示盘符的问题
- vue 传参 微信_小猿圈web前端之微信小程序页面间跳转传参方式总结
- LearnGL - 11.1 - 实现简单的Gouraud光照模型 dot 点积/点乘的作用
- SAP 接口 inbound (SAP CALL JAVA ) 负载均衡说明
热门文章
- MHT: Basic Methods for Data Association(六)Multiple Hypothesis Tracking 多假设追踪(1)
- 笔记本电脑键盘进水怎么办?有效处理湿键盘的关键步骤
- python urlopen 超时_在Python的urllib2 urlopen中检测超时错误
- ApacheCN 翻译活动进度公告 2019.3.3 1
- 三个简单又靠谱的兼职,让上班族轻松赚钱!
- 浅谈五种常用的特征选择方法
- VR实景看房,解锁购房新姿势
- java除法转百分比
- Lucene SmartChineseAnalyzer 自定义扩展 同义词
- IPsec中IKE与ISAKMP过程分析(主模式-消息1)