最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的selenium入門超詳細教程

 更新時間:2023年11月10日 10:22:09   作者:溫小八  
這篇文章主要介紹了python中的selenium入門超詳細教程,本文是在python環(huán)境下使用selenium,使用瀏覽器是Chrome,系統(tǒng)是win10系統(tǒng),需要的朋友可以參考下

selenium,一個第三方庫,可以通過給driver發(fā)送命令來操作瀏覽器,以達到模擬人操作瀏覽器,實現(xiàn)網(wǎng)頁自動化、測試等,減少了重復性工作。
selenium的工作的基本架構如下:

安裝

本文是在python環(huán)境下使用selenium,使用瀏覽器是Chrome,系統(tǒng)是win10系統(tǒng)。
python環(huán)境的配置這里就不多說了
selenium安裝:pip install selenium
Driver安裝:

  • chromedriver下載:
    • 國內鏡像下載地址:https://registry.npmmirror.com/binary.html?path=chromedriver
    • 打開chrome瀏覽器,打開chrome://settings/help頁面,即可查看chrome版本號
    • 根據(jù)Chrome的版本號下載對應版本或稍微高于該版本的chromedirver,然后解壓
  • 環(huán)境變量配置:
    • 配置系統(tǒng)環(huán)境變量path,將chromedirver的解壓包所在目錄添加進去,然后點擊確定進行保存

查看是否配置成功

使用

selenium的使用基本思路如下:

  • 步驟1:打開瀏覽器
  • 步驟2:操作瀏覽器或驗證頁面數(shù)據(jù)等
  • 步驟3:關閉瀏覽器進程

示例:

from selenium import webdriver
if __name__ == "__main__":
    # 由于selenium是通過driver去操作瀏覽器的,所以我們需要對應瀏覽器的driver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com")
    # 操作瀏覽器或驗證頁面數(shù)據(jù)等
	print("xxx")
    # 關閉瀏覽器進程
    driver.quit()

瀏覽器驅動

從前面的selenium工作原理我們可以了解到,我們的代碼并不是直接去操作瀏覽器的,而是通過給瀏覽器驅動driver發(fā)送命令,driver去操作瀏覽器的,簡單點理解就是跟selenium對接的是driver,所以我們都是先創(chuàng)建一個driver去進行后面的操作。

驅動對象WebDriver

selenium支持的瀏覽器驅動有:Firefox、Chrome、Ie、Edge、Safari等瀏覽器的驅動(需要自己手動安裝對應的瀏覽器驅動)
selenium創(chuàng)建瀏覽器驅動對象的語法如下:

import time
from selenium import webdriver
# 創(chuàng)建 Firefox 瀏覽器驅動對象
driver = webdriver.Firefox()
# 創(chuàng)建 Chrome 瀏覽器驅動對象
driver = webdriver.Chrome()
# 創(chuàng)建 IE 瀏覽器驅動對象
driver = webdriver.Ie()
# 創(chuàng)建 Edge 瀏覽器驅動對象
driver = webdriver.Edge()
# 創(chuàng)建 Safari 瀏覽器驅動對象
driver = webdriver.Safari()

打開網(wǎng)頁

驅動對象WebDriver的創(chuàng)建相當于打開了瀏覽器,我們打開瀏覽器肯定是想訪問某個網(wǎng)頁的,所以接下來就是打開網(wǎng)頁,對應的方法是:get(url)
get(url)是WebDriver對象的方法,所以需要先創(chuàng)建WebDriver對象。

關閉瀏覽器

相關操作執(zhí)行完成后,最后肯定是要關閉瀏覽器的,不然打開太多瀏覽器,會占用資源。關閉瀏覽器有2種方式:close()quit()

方法描述
close()關閉當前標簽頁面
quit()關閉瀏覽器

注:如果當前瀏覽器只有一個標簽頁,close()有時能達到quit()的效果,因為有些瀏覽器判斷沒有標簽頁的時候會默認為關閉瀏覽器,比如Chrome。
示例:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打開百度首頁
    driver.get("https://www.baidu.com")
    # 點擊 新聞 ,新標簽頁打開百度新聞
    driver.find_element(By.LINK_TEXT, "新聞").click()
    # 在百度首頁點擊 視頻,打開百度視頻
    driver.find_element(By.LINK_TEXT, "視頻").click()
    time.sleep(2)
    # 關閉百度首頁這個標簽頁
    driver.close()
    time.sleep(2)
    # 關閉瀏覽器
    driver.quit()

執(zhí)行結果如下:

從關閉瀏覽器這里可以看出來,WebDriver對象的當前頁面并不是我們看到的新標簽頁,如果想切換到其他頁面,就需要用到switch_to()方法,這個后面系列再具體介紹。

定位元素

瀏覽器頁面除了給我們展示數(shù)據(jù)外,還需要我們去操作頁面,比如點擊、長按、拖拽、雙擊指定元素等,在操作元素時,我們得讓driver知道要操作的元素,即selenium需要給到元素的定位。

find_element()

早期的selenium提供了針對id、name、xpath等多種方式的具體方法來定位到具體的元素,比如find_element_by_id()、find_element_by_name()等,在后續(xù)的升級中,這些方法被棄用了,現(xiàn)在統(tǒng)一使用find_element(by=By.ID, value=None)方法,該方法包含了id、name、xpath等定位方式

find_element(by=By.ID, value=None)是WebDriver對象用于定位元素的方法,返回對應元素對象(WebElement),我們的點擊、拖拽等操作都是在元素對象的基礎上進行的
參數(shù)說明

by:指定按照對應的方式來定位元素

  • By.ID,根據(jù)查找標簽中的id屬性來定位元素
  • By.NAME,根據(jù)查找標簽中的name屬性來定位元素
  • By.CLASS_NAME,根據(jù)class屬性指定的值來查找元素
  • By.CSS_SELECTOR,根據(jù)css選擇器的方式來查找元素
  • By.XPATH,根據(jù)XPath語法來查找元素
  • By.LINK_TEXT,查找文本精確匹配的a標簽元素
  • By.PARTIAL_LINK_TEXT,查找文本模糊匹配的a標簽元素
  • By.TAG_NAME,根據(jù)標簽名稱來查找元素,不太好用,不常用

value:元素位置,字符串類型

注意:XPath使用范圍比較廣,但是查找速度比較慢,id、name、class其實是根據(jù)css_selector來實現(xiàn)的,css_selector查找元素比較快;一個頁面中,id和name一般是唯一的(人為的約定俗成,非強制),具體使用哪種方式,要依據(jù)頁面的改動程度、前端頁面的層級等確定。
XPath語法參考:XPath入門

Python2 Selenium元素定位的實現(xiàn)(8種)

示例:
如下示例是打開百度首頁,搜索”春節(jié)“,然后點擊”百度首頁“返回百度首頁,在首頁中點擊”幫助中心“進入幫助中心頁面

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com/")
    # 常用的屬性定位方式來定位搜索框
    # we = driver.find_element(By.ID, "kw")  # 根據(jù)ID屬性定位搜索框
    # we = driver.find_element(By.NAME, "wd")  # 根據(jù)NAME屬性定位搜索框
    # we = driver.find_element(By.CLASS_NAME, "s_ipt")  # 根據(jù)CLASS_NAME屬性定位搜索框
    # 通過CSS選擇器定位搜索框
    # we = driver.find_element(By.CSS_SELECTOR, "#kw") # '#'符號表示id,#kw表示id="kw"
    # we = driver.find_element(By.CSS_SELECTOR, ".s_ipt")  # '.'符號表示class,.s_ipt表示class="s_ipt"
    # we = driver.find_element(By.CSS_SELECTOR, '[autocomplete="off"]')  # []內指定屬性及其值,表示根據(jù)屬性來定位元素
    # 通過xpath定位搜索框
    we = driver.find_element(By.XPATH, "http://input[@id='kw']")
    # 往搜索框里輸入”春節(jié)“的搜索內容
    we.send_keys("春節(jié)")
    time.sleep(3)
    # 精準匹配a標簽的文本內容”百度首頁“,然后點擊,進入百度首頁
    we1 = driver.find_element(By.LINK_TEXT, "百度首頁")
    we1.click()
    time.sleep(2)
    # 模糊匹配a標簽的文本內容包含”幫助“,點擊,進入 幫助中心 頁面
    we2 = driver.find_element(By.PARTIAL_LINK_TEXT, "幫助")
    we2.click()
    time.sleep(2)
    # 終止相關進程
    driver.quit()

find_elements()

find_element(by=By.ID, value=None)是返回單個的WebElement對象,find_elements(by=By.ID, value=None)是返回一個列表(List)對象,列表中都是WebElement對象。

如圖,想獲取百度首頁的百度熱搜下詞條內容,當前頁面一共有6條,find_element()肯定不符合預期,find_elements()滿足要求。

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com/")
    # 通過class屬性定位元素
    wes = driver.find_elements(By.CLASS_NAME, "title-content-title")
    print(f"find_elements()返回的數(shù)據(jù)類型是:{type(wes)}")
    for we in wes:
        print("----------------------------")
        print(we)
        print(we.text)
    time.sleep(3)
    # 終止相關進程
    driver.quit()

執(zhí)行結果如下:

find_elements()返回的數(shù)據(jù)類型是:<class 'list'>
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="02a46e1c-eeed-446d-b78f-2fd261c5d189")>
紅紅火火舞新春
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="c7fe0312-9739-4256-ae6b-6be8a4d5f610")>
春耕備耕忙
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="b2effc84-5b55-4cfc-814c-3d8509f30647")>
知情人:仍在搜尋胡鑫宇飯卡
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="bb8af466-32ad-45c4-b9e2-e2eb1af0bb6f")>
官方人士:錄音筆在深圳恢復數(shù)據(jù)
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="fdfeb919-1070-4c04-9e71-e6c17975efcd")>
保時捷官網(wǎng)12.4萬元帕納梅拉遭搶購
----------------------------
<selenium.webdriver.remote.webelement.WebElement (session="daf7a5e628209860b164358803cd4801", element="4ea5b289-73a5-4cf2-8782-06d8ad08e1f3")>
5萬年一遇綠色彗星逼近地球

元素操作

我們獲取到元素之后,需要對元素進行操作,比如在輸入框中輸入內容,點擊按鈕等操作。
WebElement對象有多個屬性和方法,但常用的就幾個:
WebElement常用屬性:

屬性屬性描述
size高和寬
rect高、寬和xy坐標
tag_name標簽名稱
text文本內容

WebElement常用方法:

屬性屬性描述
send_keys()輸入內容(對同一個元素多次進行,除非是頁面自有的邏輯,否則是按照追加的方式輸入的)
clear()清空內容
click()單擊,如果單擊后,當前標簽頁跳轉頁面時,WebDriver對象會更新為當前跳轉后的頁面,如果是新標簽頁打開其他頁面時,WebDriver對象還是在原標簽頁,不會更新為新標簽頁
get_attribute()獲得屬性值
is_selected()是否被選中
is_enabled()是否可用
is_displayed()是否顯示

實例:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com/")
    # 定位 搜索輸入框
    search = driver.find_element(By.ID, "kw")
    # 在搜索輸入框中輸入“百度翻譯”,百度首頁會自動搜索
    search.send_keys("百度翻譯")
    time.sleep(3)
    # 清空搜索框的內容
    search.clear()
    time.sleep(3)
    # 定位 “百度首頁”
    more = driver.find_element(By.LINK_TEXT, "更多")
    print("”更多“的部分方法值:")
    print(f"get_attribute():{more.get_attribute('href')}")
    print(f"is_selected():{more.is_selected()}")
    print(f"is_enabled():{more.is_enabled()}")
    print(f"is_displayed():{more.is_displayed()}")
    print("\n“更多“的部分屬性值:")
    print(f"size值:{more.size}")
    print(f"rect值:{more.rect}")
    print(f"tag_name值:{more.tag_name}")
    print(f"text內容:{more.text}")
    # 點擊”更多“
    more.click()
    time.sleep(3)
    # 終止相關進程
    driver.quit()

等待

在打開網(wǎng)頁時,某些內容會立馬顯示,但是有些內容顯示的又比較慢,當網(wǎng)速卡的時候,頁面就更慢顯示了,但是程序執(zhí)行的速度又是非常快的,就會導致一個問題:頁面元素還在加載中,程序(代碼)就去定位元素了,導致程序定位失敗、退出執(zhí)行。
為了避免這種情況發(fā)生,我們在定位元素前,就設置一定的延遲時間,盡量讓相關元素顯示后再去定位元素,可以有效的降低程序失敗的情況發(fā)生。
有3種等待方式:

  • 直接等待:time.sleep(秒數(shù)),即直接等待指定的秒數(shù)再執(zhí)行后續(xù)語句,不夠靈活
  • 隱式等待:WebDriver().implicitly_wait(秒數(shù)),每0.5秒輪詢查找元素,如果在指定的時間內找到了元素,則繼續(xù)執(zhí)行,如果沒有找到,則報錯,是針對該WebDriver對象的find_element()和find_elements(),相當于全局的,沒有對元素的“個性化”,不太建議使用
  • 顯示等待:

直接等待

直接等待,也叫強制等待,就是必須等待指定的時間,才執(zhí)行下一步。需要導入time,使用time.sleep(秒數(shù))。除非頁面特有的邏輯(比如非會員必須觀看30秒廣告等),否則不建議大量使用time.sleep()方法。
示例:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com/")
    # 直接等待2秒
    time.sleep(2)
    # 點擊更多,跳轉到百度應用列表頁面
    driver.find_element(By.LINK_TEXT, "更多").click()
    #等待2秒后,關閉瀏覽器進程
    time.sleep(2)
    driver.quit()

隱式等待

隱式等待是在WebDriver對象上設置并生效的,當WebDriver對象通過implicitly_wait(秒數(shù))方法設置了隱式等待的時間后,通過當前WebDriver對象使用的find_element()find_elements()方法時,會每個一段時間(0.5秒)去頁面查找,查找到后直接進行下一步,沒有查找到則繼續(xù)查詢,若超過了設置的等待時間還沒找到對應的元素,則直接報錯。
隱式等待相當于全局性的,即WebDriver對象一次設置,對其調用的find_element()find_elements()方法都生效。
隱式等待的時間設置比較方便,但是對于某些場景又不合適,設置的等待時間需要考慮到所有用到元素的最大的等待時間,但是一個頁面中,不同的功能所需的時間又不一樣,比如上傳\下載文件和頁面元素加載所花費的時間顯然時不在同一個階段的(比如上傳完一個大容量視頻后的視頻上傳成功提示元素和只是單純在頁面顯示文字,顯然后者能很快顯示),隱式時間設置過長時,若被測產品運行有問題,會導致執(zhí)行時間的拉長,不利于自動化等的批量執(zhí)行和總體分析。
示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度首頁
    driver.get("https://www.baidu.com/")
    # 設置隱式等待的時間
    driver.implicitly_wait(12)
    # 在搜索輸入框中輸入“一人之下”
    driver.find_element(By.ID, "kw").send_keys("一人之下")
    # 點擊搜索頁中,搜索輸入框左側的百度圖標回到百度首頁
    driver.find_element(By.ID, "result_logo").click()
    # 關閉瀏覽器進程
    driver.quit()

顯示等待

顯示等待與隱式等待正好相反,顯示等待是針對某一個元素的,不是全局性質的,當然,定位元素過多的時候,又覺得一次性設置的隱式等待很香O(∩_∩)O。
顯示等待使用的是WebDriverWait對象的until()until_not()方法(可以說是WebDriverWait的左右護法了)

顯示等待中,等待的時間設置是在創(chuàng)建WebDriverWait對象時:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
參數(shù)說明:

driver:WebDriver對象

  • timeout:等待時間,即超時時間,如果在指定時間內沒有找到,則報錯
  • poll_frequency:輪詢查找的時間,單位為秒,默認0.5秒

WebDriverWait對象的until()和until_not()方法則用來判斷是否繼續(xù)執(zhí)行

until(method, message="")和until_not(method, message="")
參數(shù)說明:

  • method:函數(shù)名(函數(shù)必須要有一個參數(shù))
  • until():如果函數(shù)執(zhí)行返回的是False(或0或None或空列表、空集合等等所有不為真的數(shù)據(jù)),則TimeoutException報錯,若返回的數(shù)據(jù)為真,則執(zhí)行下一句
  • until_not():與until()相反,若函數(shù)返回為真的數(shù)據(jù),則TimeoutException報錯,若函數(shù)返回不為真的數(shù)據(jù),則執(zhí)行下一句
  • message:若函數(shù)執(zhí)行返回了不為真的數(shù)據(jù),則TimeoutException報錯時,報錯信息為message

until()的示例:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    def fun1(x):
        return True
    def fun2(x):
        return False
    wd = WebDriverWait(driver, 3)
    wd.until(fun1, "方法fun1返回了假")
    print("fun1執(zhí)行完成,找到元素")
    wd.until(fun2, "方法fun2返回了假")
    print("fun2執(zhí)行完成,找到元素")
    # 終止相關進程
    driver.quit()

執(zhí)行結果如下:

fun1執(zhí)行完成,找到元素
Traceback (most recent call last):
  File "G:\python_project\web\demo.py", line 14, in <module>
    wd.until(fun2, "方法fun2返回了假")
  File "G:\python_project\web\lib\site-packages\selenium\webdriver\support\wait.py", line 95, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 方法fun2返回了假

從執(zhí)行結果來看,程序并沒有執(zhí)行到print("fun2執(zhí)行完成,找到元素"),wd.until(fun2, "方法fun2返回了假")這一步報錯了,并打印了我們傳入的message內容

until_not()示例

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    def fun1(x):
        return True
    def fun2(x):
        return False
    wd = WebDriverWait(driver, 3)
    wd.until_not(fun2, "方法fun2返回了真")
    print("fun2執(zhí)行完成,找到元素")
    wd.until_not(fun1, "方法fun1返回了真")
    print("fun1執(zhí)行完成,找到元素")
    # 終止相關進程
    driver.quit()

執(zhí)行結果如下:

fun2執(zhí)行完成,找到元素
Traceback (most recent call last):
  File "G:\python_project\web\demo.py", line 14, in <module>
    wd.until_not(fun1, "方法fun1返回了真")
  File "G:\python_project\web\lib\site-packages\selenium\webdriver\support\wait.py", line 118, in until_not
    raise TimeoutException(message)
selenium.common.exceptions.TimeoutException: Message: 方法fun1返回了真

從以上2個示例來看,如果想要做到顯示等待某個元素,我們需要在until()until_not()中傳入method參數(shù)來實現(xiàn),method參數(shù)傳入的是函數(shù),函數(shù)中需要實現(xiàn)對元素是否存在的判斷,示例如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度翻譯頁面,翻譯triggered
    driver.get("https://fanyi.baidu.com/#en/zh/triggered")
    def show_banner(x):
        # 只有在有翻譯的時候才會顯示廣告位
        return len(driver.find_elements(By.CLASS_NAME, "app-side-banner")) > 0
    wd = WebDriverWait(driver, 3)
    wd.until(show_banner, "未顯示廣告位")
    print("顯示了廣告位")
    # 終止相關進程
    driver.quit()

show_banner(x)實現(xiàn)了判斷某個元素存不存在邏輯,until()方法傳入了show_banner函數(shù),相當于在3秒內查詢該元素存不存在,不存在則報錯,執(zhí)行結果如下:

顯示了廣告位

從執(zhí)行結果來看,確實顯示了廣告位


但是如果每一個元素都需要實現(xiàn)一個函數(shù)(或者使用匿名函數(shù)),豈不是很麻煩,所以selenium也提供了一系列元素判斷方法,這些方法封裝在了expected_conditions中,使用示例如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
if __name__ == "__main__":
    # 定義一個WebDriver對象
    driver = webdriver.Chrome()
    # 打開百度翻譯頁面
    driver.get("https://fanyi.baidu.com/#en/zh")
    # 首次打開百度翻譯頁面,有百度翻譯的引導彈窗,等待彈窗顯示后,關閉該彈窗
    # 確定引導彈窗顯示
    WebDriverWait(driver, 4).until(expected_conditions.element_to_be_clickable((By.CLASS_NAME, "app-guide-close")))
    # 點擊引導彈窗的關閉按鈕,關閉引導彈窗
    driver.find_element(By.CLASS_NAME, "app-guide-close").click()
    # 為了確認是否關閉了引導彈窗,強制等待3秒查看效果(人眼查看)
    time.sleep(3)
    # 使用expected_conditions下的visibility_of_element_located()判斷廣告位是否不存在,不存在返回True
    banner_show = expected_conditions.visibility_of_element_located((By.CLASS_NAME, "app-side-banner"))
    print("廣告位不存在" if banner_show else "廣告位存在")
    # 終止相關進程
    driver.quit()

執(zhí)行結果如下:

廣告位不存在

expected_conditions有提供了很多方法,基本上從方法名可以判斷出來,詳細的可以網(wǎng)上找找,這里不詳細展開了,可以去selenium官網(wǎng)查看,也可以參考的一些博客,如下:
selenium自動化測試(八)-- expected_conditions詳解
selenium中的expected_conditions模塊詳解
selenium細節(jié)實戰(zhàn)02–>好用的expected_conditions模塊

等待說明

三種等待方式可以混合使用,雖然expected_conditions的諸多方法底層其實是調用了find_element()方法,但implicitly_wait()和WebDriverWait()一起使用時,等待時間是兩者間設置時長最長的那個(貌似說不能混合使用,但是我混了后還沒報錯。。。暫時就先不管了)

到此這篇關于python中的selenium入門教程的文章就介紹到這了,更多相關python selenium入門內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • numpy和pandas中數(shù)組的合并、拉直和重塑實例

    numpy和pandas中數(shù)組的合并、拉直和重塑實例

    今天小編就為大家分享一篇numpy和pandas中數(shù)組的合并、拉直和重塑實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python如何保護代碼和數(shù)據(jù),常見的安全漏洞及應對措施有哪些?

    Python如何保護代碼和數(shù)據(jù),常見的安全漏洞及應對措施有哪些?

    本文介紹了Python安全編程的重要性,并分享了常見的安全漏洞及應對措施、安全編程最佳實踐、安全庫的使用、安全配置等內容,同時,還對比了Python和Rust的安全特性,并推薦了一些實踐項目,最后提出了學習方法和技巧,鼓勵大家不斷提高安全意識
    2026-05-05
  • 詳解python datetime模塊

    詳解python datetime模塊

    這篇文章主要介紹了python datetime模塊的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-08-08
  • python 實現(xiàn)批量替換文本中的某部分內容

    python 實現(xiàn)批量替換文本中的某部分內容

    今天小編就為大家分享一篇python 實現(xiàn)批量替換文本中的某部分內容,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 訊飛webapi語音識別接口調用示例代碼(python)

    訊飛webapi語音識別接口調用示例代碼(python)

    這篇文章主要介紹了如何使用Python3調用訊飛WebAPI語音識別接口,重點解決了在處理語音識別結果時判斷是否為最后一幀的問題,通過運行代碼并總結經(jīng)驗,解決了常見的模塊和屬性錯誤,需要的朋友可以參考下
    2025-03-03
  • 兩個元祖T1=(''a'', ''b''),T2=(''c'', ''d'')使用匿名函數(shù)將其轉變成[{''a'': ''c''},{''b'': ''d''}]的幾種方法

    兩個元祖T1=(''a'', ''b''),T2=(''c'', ''d'')使用匿名函數(shù)將其轉變成[{''a'': '

    今天小編就為大家分享一篇關于兩個元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函數(shù)將其轉變成[{'a': 'c'},{'b': 'd'}]的幾種方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Python實現(xiàn)矩陣相乘的三種方法小結

    Python實現(xiàn)矩陣相乘的三種方法小結

    今天小編就為大家分享一篇Python實現(xiàn)矩陣相乘的三種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 在Pandas中進行數(shù)據(jù)重命名的方法示例

    在Pandas中進行數(shù)據(jù)重命名的方法示例

    Pandas作為Python中最流行的數(shù)據(jù)處理庫,提供了強大的數(shù)據(jù)操作功能,其中數(shù)據(jù)重命名是常見且基礎的操作之一,本文將通過簡潔明了的講解和豐富的代碼示例,帶你快速掌握如何在Pandas中進行數(shù)據(jù)重命名,需要的朋友可以參考下
    2025-01-01
  • YOLOv5改進系列之增加小目標檢測層

    YOLOv5改進系列之增加小目標檢測層

    yolov5出來已經(jīng)很長時間了,所以有關yolov5的一些詳細介紹在這里就不一一介紹了,下面這篇文章主要給大家介紹了關于YOLOv5改進系列之增加小目標檢測層的相關資料,需要的朋友可以參考下
    2022-09-09
  • python生成隨機唯一id的幾種實現(xiàn)方法

    python生成隨機唯一id的幾種實現(xiàn)方法

    在Python中生成隨機唯一ID有多種方法,根據(jù)不同的需求場景可以選擇最適合的方案,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07

最新評論

林芝县| 闵行区| 花莲县| 清河县| 双流县| 珲春市| 北辰区| 合山市| 霞浦县| 通许县| 湛江市| 西盟| 广宗县| 南陵县| 晋江市| 镇巴县| 小金县| 桂林市| 额敏县| 屏东县| 绿春县| 林州市| 河间市| 安康市| 天长市| 房山区| 开封市| 富蕴县| 抚州市| 贵阳市| 邢台市| 新干县| 台江县| 巍山| 来宾市| 临澧县| 重庆市| 平南县| 漳平市| 古丈县| 贵定县|