用户模拟爬虫技术

seleniumChrome简单的设置+启动浏览器+定位+点击

2018-08-27  本文已影响723人  Simon0903

简介

什么是 chrome.options

chrome.options 是一个方便控制 chrome 启动时属性的类。通过 selenium 的源码,可以看到,chrome.options 主要提供如下几个功能:

作者:Simon0903

链接:https://www.jianshu.com/u/2b4bc3b5e6fc

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

% from selenium import webdriver  #导入 

% from selenium.webdriver.chrome.options import Options  #自定义启动参数包导入 

代码:

% setup= Options()  #实例化设置功能(启动参数对象)

% setup.add_argument()   # 设置浏览器以无界面方式运行

% setup.add_argument('--disable-gpu')  #  官方文档表示这一句在之后的版本会消失,但目前版本需要加上此参数

%  setup.add_argument("--start-maximized")  # 最大化浏览器

% setup.add_argument('--window-size=1366,768')  # 设置系统的浏览器窗口大小

(窗口大小不同会在解析网页时出现不同的结果) 

 open_browser = webdriver.Chrome(chrome_options=setup)

# 添加了启动参照之后的打开浏览器

# 注意,一般selenium默认是火狐firefox,  当使用chrome的时候,要把chromedriver.exe插件放在脚本的相对目录下,否则,就要给定绝对路径参数来开启chromedriver.exe 插件

% open_browser = webdriver.Chrome(executable_path=“绝对路径”)

运行上述代码,则会打开一个无界面chrome浏览器的空白页,去掉headless那一行代码才可以看到有界面的浏览器操作。

例子: 模拟操作浏览器打开百度

导入模块

% from selenium import webdriver

% from selenium.webdriver.common.by import By 

% from selenium.webdriver.support import expected_conditions as EC

% from selenium.webdriver.support.wait impor WebDriverWait

代码:

(ps:如果chromedirver.exe插件不是和你脚本文件同一目录,那打开浏览器)

% browser = webdriver.Chrome() #打开浏览器

% browser.get("www.baidu.com") # 登录百度域名 (传入参数是str)

% input = WebDriverWait(browser,10) .until(

EC.presence_of_element_located((By.XPATH,'//*[@id="kw"]'))

)

#最多等待10秒,使用xpath元素定位,定位到输入框

参数解释: WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)

driver.find_element_by_xpath('//input[@id="su"]').clear()  #有些输入框有默认值,先清除 

% input.send_keys('Python')   #让selenium输入 ‘Python’(传入参数是str)

% button = WebDriverWait(browser,10).until(

            EC.element_to_be_clickable( (By.XPATH,'//*[@id="su"]'))

)   # 定位到输入元素的按钮

% button.click() # 点击按钮 

% browser.quti()   # 退出自动模拟操作

quti方法一定要在结尾写,作用是退出selenium的进程,否则再次启动selenium任务管理器会出现另一条进程,原先的进程不会自动结束,需留意养成习惯

上一篇 下一篇

猜你喜欢

热点阅读