Selenium的基本使用方法

 

一、前言

由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断;

selenium模块本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器;由于selenium解析执行了CSS、JavaScript所以相对requests它的性能是低下的;

二、selenium基本使用

import time
from selenium import webdriver#驱动浏览器
from selenium.webdriver import ActionChains #滑动
from selenium.webdriver.common.by import By #选择器
from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  #等待所有标签加载完毕
from selenium.webdriver.support.wait import WebDriverWait #等待页面加载完毕 寻找某些元素

browser=webdriver.Chrome() #调用Chrome 驱动,生成浏览器对象
wait=WebDriverWait(browser,10) #设置selenium等待浏览器加载完毕的最大等待时间

try:
    browser.get('https://www.baidu.com/')
    baidu_input_tag=browser.find_element_by_id("kw")  #寻找到百度页面的id='kw'的标签
    key=baidu_input_tag.send_keys('张根')             #在标签中输入'张根'

    baidu_button_tag=browser.find_element_by_id('su') #寻找到百度页面id='su'的标签
    baidu_button_tag.click()                           #点击
    wait.until(EC.presence_of_element_located((By.ID,'4')))  #等待百度页面 ID='4'的标签完毕,最大等待10秒
    '''
    请求相关:
    browser.get('url')
    响应相关:
    print(browser.page_source) #显示网页源码
    print(browser.current_url)   #获取当前url
    print(browser.get_cookies()) #获取当前网页cokies
    '''

finally:
    time.sleep(5)
    browser.close()      #关闭浏览器

三、selenium选择器

模拟浏览器无非请求---->显示页面----->寻找标签 ------>点击标签的事件,所以selenium的关键是怎么找到页面中的标签,进而触发标签事件;

1.通过标签id属性进行定位

browser.find_element(By.ID,'kw').send_keys("美女")
browser.find_element_by_id('kw').send_keys('性感')

2.通过标签name属性进行定位

browser.find_element_by_name("wd").send_keys("Linux")
browser.find_element(By.NAME,'wd').send_keys("美女")

3.通过标签名进行定位

 browser.find_element_by_tag_name("input").send_keys("selenium")
 browser.find_element(By.TAG_NAME, 'input&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值