Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class

加入好友
加入社群
Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王

code:

# -*- coding: utf-8 -*-
"""
Created on Tue May  9 20:41:07 2023

@author: SavingKing
"""

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import sys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

options = Options()
options.add_argument("--disable-notifications")

# driverpath = r"P:\Python\selenium\chromedriver_win32\chromedriver.exe"
# service = Service(driverpath)
# chrome = webdriver.Chrome(service=service)
chrome = webdriver.Chrome( options=options)
#selenium.webdriver.chrome.webdriver.WebDriver

# chrome = webdriver.Chrome("./chromedriver_win32",
#                           chrome_options=options)
chrome.get("http://www.python.org")
elem = chrome.find_element(By.ID, "id-search-field")
#elem = chrome.find_element("id", "id-search-field") #也可
"""
By.ID
Out[36]: 'id'
"""
elem.clear()
elem.send_keys("SavingKing")
elem.send_keys(Keys.RETURN)
"""
Keys.RETURN
Out[39]: '\ue006'
"""

code:

Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王


執行程式後,
自動打開Chrome瀏覽器
連線 http://www.python.org
且輸入SavingKing搜尋

Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王


Chrome瀏覽器中
按F12 (NB有可能是按 Fn + F12)
或者 Ctrl + Shift + I
檢視網頁原始碼:

Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王

放大:

Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王

<input id="id-search-field" name="q" type="search" role="textbox" class="search-field" placeholder="Search" value="SavingKing" tabindex="1">

這是一個HTML元素的代碼,它描述了一個具有不同屬性的<input>元素。以下是對這些屬性的解釋:

  1. id="id-search-field":這是元素的唯一識別符,稱為ID。通過ID,您可以在HTML文檔中獨特地識別和訪問這個元素。
  2. name="q":這是元素的名稱,通常用於表單提交時識別元素。在這種情況下,當表單被提交時,這個元素的值將使用名稱”q”傳遞。
  3. type="search":這指定了輸入框的類型,即搜索框。
  4. role="textbox":這是指元素的角色,表示這個元素是一個文本框,用戶可以在其中輸入文本。
  5. class="search-field":這個元素的CSS類名,可以用於定義元素的外觀和風格。
  6. placeholder="Search":這是一個占位符屬性,用於在輸入框中提供簡短的說明性文字,當用戶未輸入文本時顯示。
  7. value="SavingKing":這是輸入框的初始值,當網頁加載時,它將包含”SavingKing”這個文本。
  8. tabindex="1":這是定義用戶在使用鍵盤時可以通過Tab鍵切換到這個元素的順序。

總之,這個<input>元素是一個搜索框,具有多個不同的HTML屬性,這些屬性提供了關於元素的信息,並影響了它的行為和外觀。


elem = chrome.find_element(By.ID,"id-search-field") 這行代碼是在已經打開的 Chrome 瀏覽器中尋找具有特定 ID 屬性的 HTML 元素,並將該元素存儲在變數 elem 中。

這裡的詳細解釋如下:

  • chrome:這是您創建的 Chrome 瀏覽器物件,通過它,您可以對瀏覽器進行控制和操作。
  • find_element:這是 Selenium 提供的方法之一,用於查找網頁上的元素。在這個情況下,您希望查找一個元素,該元素擁有特定的屬性。
  • By.ID:這是一個 Selenium 提供的方法,指定您要根據元素的 ID 屬性來查找元素。
  • "id-search-field":這是您要查找的元素的 ID 屬性的值。在這個特定情況下,您正在尋找 ID 為 “id-search-field” 的元素。

總之,elem = chrome.find_element(By.ID, "id-search-field") 的目的是在已經打開的 Chrome 瀏覽器中查找具有 ID 屬性為 “id-search-field” 的 HTML 元素,並將這個元素存儲在變數 elem 中,以便之後對它執行操作,比如清空輸入框或者輸入文本。

在Python的命名慣例中,全大寫通常用於表示常數或常數值。這種風格稱為「大寫和底線」(UPPERCASE_WITH_UNDERSCORES),並且主要用於定義全局變量,通常是不可變的。

例如,By.ID 中的 ID 是一個常數,表示一種定位元素的方法,通常不會在代碼中改變其值。這樣的常數通常使用大寫字母和底線來命名,以使它們在代碼中易於識別。

因此,使用全大寫字母來表示常數值是一種Python慣例,有助於提高代碼的可讀性和理解性。

首字大写的慣例在Python中通常用於表示類(Class)名或型別(Type)名。這種風格稱為「大駝峰命名法」(CamelCase),其中單詞的首字母都使用大寫字母,並且單詞之間不使用底線。

以下是首字大写慣例的一些示例:

  1. 類名(Class Name):在定義Python類時,慣例是使用首字大写的名稱,例如:
    class MyClass:
    #類的定義
  2. 函數名(Function Name):函數名通常使用小寫字母,但如果函數名由多個單詞組成,則第二個單詞以後首字母大寫,例如:
    def myFunction():
    #函數的實現
  3. 變數名(Variable Name):變數名通常使用小寫字母,但如果變數名由多個單詞組成,則第二個單詞以後首字母大寫,例如:
    myVariable = 42

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: 網路爬蟲 selenium 開啟chrome瀏覽器自動連線 ; chrome = webdriver.Chrome( options=options ) ; Python的命名慣例: 全大寫表示常數,首字大寫表示Class - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *