资讯详情

基础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目前支持的选项包括路径和域

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)

标签: 820d型温度传感器温度探头

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台