Python中使用selenium(二)基本语法

环境准备

  • python环境已正确安装
  • selenium 已安装
  • 浏览器驱动已安装

如果没有完成,请看
Python中使用Selenium(一)

Selenium 语法

以下代码皆使用chrome测试通过

先看一下简单的爬虫

from selenium import webdriver
import time

def hello():
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    # 获得搜索框
    kwInput = driver.find_element_by_id("kw")
    # 在搜索框中输入内容
    kwInput.send_keys("blibli")

    # 查找百度一下按钮,并点击
    suBtn = driver.find_element_by_id("su")
    suBtn.click()


    time.sleep(3)
    driver.quit()
if __name__ == '__main__':
    hello()

driver = webdriver.Chrome()第一步是创建一个全新的浏览器并打开

driver.get("https://www.baidu.com/")第二步为打开指定的网址

driver.quit()最后一步永远为关闭浏览器

selenium 常用语法

获得元素

在阅读本部分前,最好温习一下javascript里面获得元素的方法,大部分一致
以下driver对象为 driver = webdriver.Chrome()

  • driver.find_element_by_id("kw")根据id获得元素
  • driver.find_element_by_tag_name("a")根据标签的名称获取元素,例如a标签,div标签
  • driver.find_elements_by_class_name("className")根据class来获得元素
  • driver.find_elements_by_css_selector(“#kw”)根据css选择器获得元素
  • driver.find_element_by_xpath(“//input[@id='kw'])根据xpath选择器获得元素
  • 剩下的find_element_by_link_text 和 find_element_by_partial_link_text 不常用,可用xpath或者其他方法代替

    注意事项

    • find_element 和 find_elements 其中前者返回一个标签,后者返回一个数组,前者如果没有找到其中的元素会报错,后者不会报错,如果不确定返回多少元素,使用后者,然后接口len()函数进行长度判断
    • xpath语法可以代替其他基本所有的语法,具体可以了解一下xpath的具体语法

元素的属性和方法

以下element对象为通过获得元素中获得的单个元素
element.click()单击事件
element.get_attribute('name') 获得该元素的对应属性的值(常用),HTML中的元素的属性
element.get_property('name') 获得该元素的属性值(不常用),JS中元素的属性
element.text 获得该标签的内容

酸酸的果子
, 例如该div为element,获得的就是酸酸的果子这五个字
element.send_keys("酸酸的果子") 向输入框中输入内容

备注
  • 还有其他的属性和方法,例如id,parent等属性,还有clear() , submit(),is_displayed()等方法,只是不太常用,如果情况不一样可能会经常使用
  • 在该元素可以继续使用find_element和find_elemnets等方法,会在该标签下继续查找元素,但是如果使用xpath进行查找元素,会导致不从该标签下继续查找

执行js

js='window.open("https://www.baidu.com/");'
driver.execute_script(js)

经常可能需要跳转自定义的页面,而又不能使用driver.get()方法时,可以使用该种方法跳转

对浏览器窗口的操作

handleOrigin = driver.current_window_handle 获得当前浏览器标签页的坐标
handles = driver.window_handles 获得当前浏览器标签页的所有坐标
driver.switch_to.window(handles[1]) 切换当前浏览器的标签页(活动的)
driver.close()·关闭当前标签页
driver.minimize_window() 最小化窗口
driver.maximize_window() 最大化窗口
driver.set_window_size(1280,800) 设置浏览器窗口大小

本期就到这里了,第(三)期将会更新一些特殊的爬虫操作,如果有什么疑问可以在评论区讨论

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