??當我們打開一個網頁進行資訊搜索時,少不了要對它進行點擊和輸入資訊等操作,有的網頁還可能需要你先登錄才能開始其他操作,這篇博客就帶大家來了解一下如何撰寫一段python代碼實作打開并登錄網頁、對網頁進行點擊、輸入資訊等操作,

0.準備作業
??在開始之前,我們需要一些準備作業,一個能夠撰寫并運行python代碼的IDE(如:IDLE、PyCharm)、安裝Python第三方函式庫 Selenium、安裝瀏覽器驅動,如何安裝Selenium、瀏覽器驅動以及相應的一些介紹,這里放一個 鏈接 僅供大家參考,這里需要 注意 的是你下載的瀏覽器驅動的版本和你使用的瀏覽器版本應該是對應的,
1.打開一個網頁
??接下來我們開始第一步:打開一個網頁,這里以baidu.com為例,在python源程式中輸入并運行下列代碼:
#引入selenium庫中的 webdriver 模塊
from selenium import webdriver
#打開谷歌瀏覽器
driver = webdriver.Chrome()
#打開百度搜索主頁
driver.get('https://www.baidu.com')
運行結果如下:

2.在網頁中輸入資訊
??以百度搜索主頁為例,我們在使用時,需要在搜索框中輸入我們需要搜索的資訊,那我們怎么捕捉到頁面中的搜索框并在其中輸入資訊呢?這時我們需要使用到selenium庫中的 元素定位方法 ,這里我們希望通過 XPath 定位搜索框在網頁中的 <input> 標簽 ,呼叫find_element_by_xpath()方法,在引數中輸入 路徑運算式 來定位搜索框,代碼如下:
'''
呼叫selenium庫中的find_element_by_xpath()方法定位搜索框,
同時使用send_keys()方法在其中輸入資訊
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')
運行結果如下:

??那么大家現在可能會有一個疑問是,應該如何獲取搜索框的路徑運算式呢?我們按 F12 或右鍵打開網頁的元素審查視窗,點擊視窗頂部的元素選擇按鈕,之后選中搜索框,此時已定位到搜索框在網頁中的 <input> 標簽,右鍵選擇Copy XPath即可,詳細步驟看圖:

3.對網頁進行點擊
??在搜索框中輸入將要搜索的資訊之后,需要點擊搜索按鈕進行搜索,搜索按鈕的路徑運算式獲取方式與步驟二一致,代碼如下:
'''
呼叫selenium庫中的find_element_by_xpath()方法定位搜索按鈕,
同時使用click()方法對按鈕進行點擊
'''
driver.find_element_by_xpath('//*[@id="su"]').click()
運行結果如下:

步驟①至③完整代碼如下:
#引入selenium庫中的 webdriver 模塊
from selenium import webdriver
#打開谷歌瀏覽器
driver = webdriver.Chrome()
#打開百度搜索主頁
driver.get('https://www.baidu.com')
'''
呼叫selenium庫中的find_element_by_xpath()方法定位搜索框,
同時使用send_keys()方法在其中輸入資訊
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')
'''
呼叫selenium庫中的find_element_by_xpath()方法定位搜索按鈕,
同時使用click()方法對按鈕進行點擊
'''
driver.find_element_by_xpath('//*[@id="su"]').click()
4.打開并登錄網頁
??如果你對上述三個基礎操作有了足夠清楚的認識,那么如何實作打開并登錄一個網頁,你的心里一定有了一些想法,下面以登錄 智慧樹學習平臺 為例,看看和你想的一樣嘛?代碼如下:
#引入selenium庫中的 webdriver 模塊
from selenium import webdriver
#引入time庫
import time
#打開谷歌瀏覽器
driver = webdriver.Chrome()
#打開智慧樹學習平臺
driver.get('https://www.zhihuishu.com/')
'''
考慮到網頁打開的速度取決于每個人的電腦和網速,
使用time庫sleep()方法,讓程式睡眠5秒
'''
time.sleep(5)
#在主頁面點擊登錄按鈕,進入登錄頁面
driver.find_element_by_xpath('//*[@id="notLogin"]/span/a[1]').click()
#輸入賬號和密碼
driver.find_element_by_xpath('//*[@id="lUsername"]').send_keys('賬號')
driver.find_element_by_xpath('//*[@id="lPassword"]').send_keys('密碼')
#點擊登錄按鈕
driver.find_element_by_xpath('//*[@id="f_sign_up"]/div[1]/span').click()
登錄界面如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139226.html
標籤:其他
上一篇:ctfshow-月餅杯WP
