python3使用selenium + Chrome基础操作代码
2018-07-25 13:12:47来源:博客园 阅读 ()
selenium是Python的第三方库,使用前需要安装。但是如果你使用的是anaconda,就可以省略这个步骤,为啥?自带,任性。
安装命令:
pip install selenium
(一)使用selenium打开指定网站,这里以淘宝为例。
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 25 10:12:39 2018
@author: brave_man
email: 1979887709@qq.com
"""
from selenium import webdriver
from time import sleep
b = webdriver.Chrome()
b.get("http://www.taobao.com")
elem = b.find_element_by_id('q')
elem.send_keys('iphone')
sleep(3)
elem.clear()
elem.send_keys("ipad")
button = b.find_element_by_class_name("btn-search")
button.click()
sleep(5)
b.close()
(二)简单的拖拽动作(用于验证码识别)
# -*- coding: utf-8 -*- """ Created on Wed Jul 25 15:00:10 2018 @author: brave_man email: 1979887709@qq.com """ from selenium import webdriver from selenium.webdriver import ActionChains b = webdriver.Chrome() url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable" b.get(url) b.switch_to.frame('iframeResult') sou = b.find_element_by_css_selector('#draggable') tar = b.find_element_by_css_selector('#droppable') actions = ActionChains(b) actions.drag_and_drop(sou, tar) actions.perform()
(三)在爬虫中,可能会由于网速等外界因素的影响,造成获取网页元素失败,这里介绍两种等待模式
1. 隐式等待:webdriver没有在DOM中找到想要的元素,在等待指定的时间后,会抛出一个找不到指定元素的异常。在网速特别慢的情况可以使用
from selenium import webdriver b = webdriver.Chrome() b.implicitly_wait(10) b.get("https://www.zhihu.com/explore") elem = b.find_element_by_class_name('zu-top-add-question') print(elem)
2. 显式等待
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC b = webdriver.Chrome() #b.implicitly_wait(10) b.get("https://taobao.com/") #elem = b.find_element_by_class_name('zu-top-add-question') b_wait = WebDriverWait(b, 10) elem = b_wait.until(EC.presence_of_all_elements_located((By.ID, 'q'))) button = b_wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-search'))) print(elem, button)
(四)前进后退
from selenium import webdriver from time import sleep b = webdriver.Chrome() b.get("http://www.baidu.com") sleep(1) b.get("http://www.sina.com.cn") sleep(1) b.back() sleep(3) b.forward() sleep(3) b.close()
更多内容可以参考文档:http://selenium-python-zh.readthedocs.io/en/latest/index.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- Django项目中使用qq第三方登录。 2019-08-13
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash