selenium的使用教程1
生活随笔
收集整理的這篇文章主要介紹了
selenium的使用教程1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Selenium 庫里有個叫 WebDriver 的 API,WebDriver 可以加載網站的瀏覽器,但是也可以像 BeautifulSoup 或者其他 Selector 對象一樣用來查找頁面元素,與頁面上的元素進行交互 (發送文本、點擊等),以及執行其他動作來運行網絡爬蟲。
1.加載網頁
selenium通過控制瀏覽器,所以對應的獲取的數據都是elements中的內容。
from selenium import webdriver # 指定driver的絕對路徑,也就是制定驅動程序的位置 # driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs') driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')# 向url發起請求 driver.get("http://www.itcast.cn/")# 把網頁保存為圖片 driver.save_screenshot("itcast.png")# 退出模擬瀏覽器,一定要退出!不退出會有殘留進程! driver.quit()2.定位和操作:
以百度搜索為例:
import time from selenium import webdriverdriver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver') driver.get("https://www.baidu.com/")driver.find_element_by_id('kw').send_keys('python') driver.find_element_by_id('su').click()time.sleep(6) driver.quit()3.查看請求信息:
driver.page_source # 查看網頁源碼 driver.get_cookies() # 獲取當前瀏覽器的全部cookies driver.current_url # 獲取當前頁面的url4.退出
driver.close() #退出當前頁面 driver.quit() #退出瀏覽器5.selenium的定位操作
定位元素語法:
find_element_by_id (返回一個元素) find_elements_by_xpath (返回一個包含元素的列表) find_elements_by_link_text (根據連接文本獲取元素列表) find_elements_by_partial_link_text (根據鏈接包含的文本獲取元素列表) find_elements_by_tag_name (根據標簽名獲取元素列表) find_elements_by_class_name (根據類名獲取元素列表)注意:
find_element和find_elements的區別:
多了個s就返回列表,沒有s就返回匹配到的第一個 。
by_link_text和by_partial_link_tex的區別:
全部文本和包含某個文本。
舉例:
以豆瓣首頁為例: https://www.douban.com/
from selenium import webdriverdriver = webdriver.Chrome()driver.get("https://www.douban.com/")ret1 = driver.find_element_by_id("anony-nav")print(ret1)# 輸出為:<selenium.webdriver.remote.webelement.WebElement (session="ea6f94544ac3a56585b2638d352e97f3", element="0.5335773935305805-1")>ret2 = driver.find_elements_by_id("anony-nav")print(ret2)#輸出為:[<selenium.webdriver.remote.webelement.WebElement (session="ea6f94544ac3a56585b2638d352e97f3", element="0.5335773935305805-1")>]ret3 = driver.find_elements_by_xpath("//*[@id='anony-nav']/h1/a")print(len(ret3))#輸出為:1ret4 = driver.find_elements_by_tag_name("h1")print(len(ret4))#輸出為:1ret5 = driver.find_elements_by_link_text("下載豆瓣 App")print(len(ret5))#輸出為:1ret6 = driver.find_elements_by_partial_link_text("豆瓣")print(len(ret6))#輸出為:24driver.close()獲取數據語法:
find_element僅僅能夠獲取元素,還能直接獲取其中的數據。如果需要獲取數據需要使用以下方法:
- 獲取文本:element.text
- 獲取屬性值:element.get_attribute(“href”)
使用示例:
from selenium import webdriverdriver = webdriver.Chrome() driver.get("https://www.douban.com/")ret7 = driver.find_elements_by_tag_name("h1") print(ret7[0].text) #輸出:豆瓣ret8 = driver.find_elements_by_link_text("下載豆瓣 App") print(ret8[0].get_attribute("href")) #輸出:https://www.douban.com/doubanapp/app?channel=nimingyedriver.close()總結:
總結
以上是生活随笔為你收集整理的selenium的使用教程1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: selenium的简单介绍
- 下一篇: selenium的使用教程2