基础Selenium爬虫操作

引用包

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的调用

常用的调用方法:

  1. get_cookies():获取所有cookie的信息
  2. delete_all_cookies():删除所有cookie信息
  3. get_cookie([name]):返回key为[name]的cookie
  4. add_cookie(cookie_dict):添加cookie,cookie_dict指字典对象,必须有name和value两个值
  5. delete_cookie([name],[optionString]):删除cookie信息,[name]是要删除的cookie的名称,[optionString]是cookie选项,目前支持的包括路径,域

注意:原先通过元素实现搜索的方法代码为:driver.find_element_by_id(“kw”)
由于find_element函数的源码变更,现在需要使用driver.find_element(by = By.id,value = “”
)的格式,不然会报错!!!

kw是什么呢?

以下图片来自于2-selenium-选择元素的基本方法

基础Selenium爬虫操作_第1张图片

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"})

使用多个窗口

基础Selenium爬虫操作_第2张图片

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)

你可能感兴趣的:(爬虫,selenium,python)