引用包
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time
打开页面
使用:get()命令打开网站,设置窗口布局。 driver.set_windows_size(浏览器的长,浏览器的宽) driver.maximize_window() 最大化设置窗口
driver = webdriver.Chrome() driver.get("http://baidu.com") #打开网页网站 #driver.set_window_size(800,480) 设置爬虫窗口大小(浏览器长,浏览器宽) #driver.maximize_window() 最大化爬虫窗
基本操作浏览器
需要导入包import time time.sleep() 停止程序一段时间后执行
#浏览网页时的基本操作:前进、后退、刷新、退出 #停留两秒后打开百度新闻 time.sleep(2) driver.get("http://baidu.com") #停留两秒后退 time.sleep(2) driver.back() 停留两秒后前进 time.sleep(2) driver.forward() #停留两秒后刷新 time.sleep(2) driver.refresh() 停留两秒钟后关闭服务器 time.sleep(2) driver.quit()
Cookie的调用
常用的调用方法:
- get_cookies():获得一切cookie的信息
- delete_all_cookies():删除一切cookie信息
- get_cookie([name]):返回key为[name]的cookie
- add_cookie(cookie_dict):添加cookie,cookie_dict必须有字典对象name和value两个值
- delete_cookie([name],[optionString]):删除cookie信息,[name]是要删除的cookie的名称,[optionString]是cookie目前支持的选项包括路径和域
kw是什么呢?
下图来自2-selenium-选择元素的基本方法
from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.baidu.com")
#这里通过查找元素实现搜索 driver
.find_element
(by
=By
.ID
, value
=
"kw"
)
.send_keys
(
"selenium"
)
#在搜索框中输入selenium driver
.find_element
(by
=By
.ID
,value
=
"su"
)
.click
#点击“百度知道”按钮 cookies
= driver
.get_cookies
(
)
#返回字典的key为BAIDU的cookie cookie
= driver
.get_cookie
(
"BAIDU"
)
print
(cookies
)
print
(cookie
)
#删除所有cookie信息 driver
.delete_all_cookies
(
) driver
.quit
(
)
输出结果:
[{
'domain': '.baidu.com', 'expiry': 1690184482, 'httpOnly': False, 'name': 'ZFY', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '1KavdvQeg4KWDqwGZE7aQ:Al9Iqoj7sf8:AhtBhCgm4HM:C'}, {
'domain': '.baidu.com', 'expiry': 1690184482, 'httpOnly': False, 'name': 'BAIDUID_BFESS', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '65C8409388F4ACBAC510142AE3335A7A:FG=1'}, {
'domain': '.baidu.com', 'expiry': 1658734882, 'httpOnly': False, 'name': 'BA_HECTOR', 'path': '/', 'secure': False, 'value': '082h0585212k2hcga524me0c1hdptt217'}, {
'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '36832_36556_36466_36255_36726_36455_36413_36165_36816_36569_36746_26350_36933_36650'}, {
'domain': 'www.baidu.com', 'expiry': 1658648482, 'httpOnly': False, 'name': 'BD_LAST_QID', 'path': '/', 'secure': False, 'value': '18040371572585528288'}, {
'domain': '.baidu.com', 'expiry': 1690184481, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': '65C8409388F4ACBAC510142AE3335A7A:FG=1'}, {
'domain': '.baidu.com', 'expiry': 3806132128, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': '65C8409388F4ACBA820D14F9B1EDCBA3'}, {
'domain': '.baidu.com', 'expiry': 3806132128, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '1658648482'}, {
'domain': 'www.baidu.com', 'expiry': 1659512482, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '12314753'}, {
'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '1'}]
None
关于add_cookie的用法: 错误用法: driver.add_cookie({"name":"testname_1234567890"},{"value":"testvalue_1234567890"})
正确用法:driver.add_cookie({"name":"testname_1234567890","value":"testvalue_1234567890"})
使用多个窗口
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")
#停留两秒后打开搜狗
time.sleep(2)
JS1='window.open("http://www.sougou.com");'
driver.execute_script(JS1)
#停留两秒后打开有道翻译
time.sleep(2)
JS2='window.open("http://fanyi.youdao.com/");'
driver.execute_script(JS2)