再学爬虫---selenium:

14 篇文章 0 订阅
2 篇文章 0 订阅

再学爬虫—selenium:

selenium是一个自动化测试工具,利用它可以驱动浏览器完成指定操作。

使用之前要声明浏览器对象:

from selenium import webdriver
browser=webdriver.Chrome()    #谷歌浏览器
browser=webdriver.Firefox()   #火狐浏览器
browser=webdriver.Edge()      #IE浏览器 版本更新好像没用了
browser=webdriver.PhantomJS() #无头浏览器

还有这种可以模拟浏览器操作且无界面:

chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
browser=webdriver.Chrome(chrome_options=chrome_options)

基本用法:

访问页面:

browser.get("url")

查找单个节点:

find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
......

返回的是一个WebElement对象

查找多个节点:

find_elements_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
......

其实就是在查找单个节点方法上加了一个s,但是返回的是一个列表。列表里面还是WebElement对象。

节点交互:

输入文字:

send_keys("输入的文字")

清空文字:

clear()

点击按钮:

click()

还有很多,这里就不一一列出了。

延时等待:

隐式等待:

如果selenium没有在DOM中找到节点,将继续等待,超出设定时间后,则抛出找不到节点的异常。也就是说,当查找节点而节点没有立即出现的时候,隐式等待将等你带一段时间再查找DOM,默认的时间是0。

browser.imlicitly_wait(10) #10秒

显示等待:

如果在规定时间内加载出来了这个节点,就返回查找的节点;如果到了规定时间依然没有加载出来该节点,则抛出超时异常。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait=WebDriverWait(browser,10)  #10秒
input=wait.until(EC.presence_of_element_localed(By.ID,"q"))

以上是我在爬虫过程中使用的比较多的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值