四、selenium常⽤功能
1、其常⽤的功能包括:设置浏览器的参数、浏览器多窗⼝切换、设置等待时间、⽂件的上传与下载、cookies处理以及frame框架的操作。
常⽤的设置:浏览器的可视化(加快代码的请求速度)和浏览求的请求头等信息(防反爬⾍机制)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url = 'movie.douban/'
chrome_options = Options()
chrome_options.add_argument('--headless') #--headless表⽰不显⽰浏览器的操作过程
chrome_options.add_argument('lang=zh_CN.UTF-8') #设置参数防反爬⾍
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0'
chrome_options.add_argument('UserAgent=' + UserAgent)
driver = webdriver.Chrome(chrome_options=chrome_options) #启动设置的参数
driver.maximize_window() #浏览器窗⼝最⼤化
driver.minimize_window() #浏览求窗⼝最⼩化
<(url)
print(driver.title)  #获取⽹页标题
print(driver.page_source)  #源码
切换窗⼝来获取不同信息
2、切换窗⼝来获取不同信息
from selenium import webdriver
import time
url = 'movie.douban/'
driver = webdriver.Chrome()
<(url)
js = 'window.open("www.sina");'
current_window = driver.current_window_handle #获取当前窗⼝信息
handles = driver.window_handles    #获取打开的窗⼝信息
time.sleep(2)
driver.switch_to.window(handles[0])  #切换到第⼀个窗⼝
time.sleep(2)
driver.switch_to.window(handles[1])  #切换到第⼆个窗⼝
3、设置等待时间让⽹页响应尽量达到同步,保证程序的少出bug。以上⽤time模块实现,接下来使⽤selenium库提供的⽅法实现,其⽐time模块的等待更智能。
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdrivermon.by import By
from selenium.webdriver.support import expected_conditions
url = 'www.baidu'
driver = webdriver.Chrome()
<(url)
driver.implicitly_wait(10)  #隐性等待时间,最多10秒
#隐性等待时间,最多10秒
driver.find_element_by_id('kw').send_keys('哈哈')
condition = expected_conditions.visibility_of_element_located((By.ID,'kw'))
selenium获取cookie#.visibility_of_element_located检查页⾯元素是否可见
#(By.ID,'kw')kw为搜索框属性,By.ID是使⽤find_element_by_id定位
#显性等待时间
WebDriverWait(driver=driver, timeout=10, poll_frequency=0.5).until(condition)  #显性等待时间
隐性等待时间:在设定时间内⽹页加载完成即刻⾃动执⾏下⼀步 ,否则抛出异常。
显性等待时间:程序隔⼀段时间检测⽹页是否加载完成,完成继续执⾏,否则继续等待直到超时。
4、cookie的添加、读取、删除操作
from selenium import webdriver
import time
driver = webdriver.Chrome()
<("ame")
time.sleep(2)
driver.add_cookie({'name':'xixi','value':'123456'}) #添加cookie
all_cookie = _cookies()  #获取所有cookie
#print(all_cookie)
cookie1 = _cookie('xixi')#获取⼀个cookie
print(cookie1)
driver.delete_cookie('xixi')
#surplus_cookies = _cookies() #print(surplus_cookies)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。