• Trang web
  • Trạng thái ứng dụng
  • Tài liệu API
  • Blog
Telegram Icon Cộng đồng
VI
English
Português
Русский
中文 (中国)
Tiếng Việt
Đăng nhập Dùng thử với €1.99
  • Trang web
  • Trạng thái ứng dụng
  • Tài liệu API
  • Blog
  • Telegram Icon Cộng đồng
  • Vietnamese
    English
    Português
    Русский
    中文 (中国)
    Tiếng Việt
Đăng nhập Dùng thử với €1.99

Script Python tùy chỉnh

Xây dựng quy trình tự động hóa mạnh mẽ với Python và Multilogin API. Tạo, quản lý và khởi chạy các hồ sơ trình duyệt với các script tùy chỉnh hoàn toàn.

search icon

Liên hệ với chúng tôi

Nếu bạn vẫn còn câu hỏi hoặc muốn nhận trợ giúp trực tiếp từ nhân viên, vui lòng gửi yêu cầu.
Chúng tôi sẽ phản hồi bạn sớm nhất có thể.

Vui lòng điền vào biểu mẫu liên hệ bên dưới, chúng tôi sẽ phản hồi bạn sớm nhất có thể.

  • Bắt đầu với tự động hóa Multilogin X
  • Tự động hóa cơ bản với CLI
  • Tự động hóa ít mã với Postman
  • Trình chạy script & các script có sẵn
  • Puppeteer, Selenium và Playwright
  • Script Python tùy chỉnh
  • Giải pháp nhanh chóng với Công cụ Phát triển
  • Công cụ tự động hóa bên ngoài
  • Trang chủ
  • breadcrumb separator bar
  • Multilogin X (mới nhất)
  • breadcrumb separator bar
  • Tự động hóa tác vụ với API
  • breadcrumb separator bar
  • Script Python tùy chỉnh
  • breadcrumb separator bar
  • Cách tự động đăng nhập vào trang web

Cách tự động đăng nhập vào trang web

Được viết bởi Anton L ( Cập nhật vào Ngày 11 tháng mười hai năm 2025 )

Cập nhật vào Ngày 11 tháng mười hai năm 2025

Giả sử bạn muốn tự động hóa quy trình làm việc với trang web. Thông thường, bạn sẽ đăng nhập vào trang web trước khi làm bất cứ việc gì khác. Bạn cũng có thể tự động hóa thao tác đó! Trong bài viết này, bạn sẽ học cách tạo một tập lệnh tự động hóa đơn giản để đăng nhập vào trang web.

Bài viết này hướng dẫn bạn từng bước tạo kịch bản. Nếu bạn muốn tham khảo toàn bộ kịch bản, vui lòng kéo xuống cuối bài.

 

Bước 1: Chuẩn bị IDE hoặc phần mềm tương tự

Bạn sẽ cần bất cứ thứ gì để viết tập lệnh. Việc sử dụng cái nào là tùy bạn, nhưng chúng tôi khuyên bạn nên sử dụng IDE. Hãy làm theo 4 bước đầu tiên trong bài viết sau: Bắt đầu với tập lệnh tự động hóa.

Bước 2: Tạo tập lệnh kết nối với API và xác định các hàm

Ở bước này, bạn cần làm cho tập lệnh hoạt động với API. Tập lệnh sẽ bao gồm:

  • API Endpoints
  • Biến cho thông tin xác thực
  • Các chức năng được xác định để đăng nhập, mở và đóng hồ sơ
  • Các mô-đun được nạp vào, bao gồm requests, hashlib, time. Một số mô-đun liên quan đến Selenium cũng sẽ được bao gồm
  • Yêu cầu đăng nhập

Sử dụng mẫu sau đây:

import requests
import hashlib
import time
from selenium import webdriver
from selenium.webdriver.chromium.options import ChromiumOptions
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By

MLX_BASE = "https://api.multilogin.com"
MLX_LAUNCHER = "https://launcher.mlx.yt:45001/api/v1"
MLX_LAUNCHER_V2 = (
    "https://launcher.mlx.yt:45001/api/v2"  # recommended for launching profiles
)
LOCALHOST = "http://127.0.0.1"
HEADERS = {"Accept": "application/json", "Content-Type": "application/json"}
# TODO: Insert your account information in both variables below
USERNAME = ""
PASSWORD = ""
# TODO: Insert the Folder ID and the Profile ID below
FOLDER_ID = ""
PROFILE_ID = ""


def signin() -> str:
    payload = {
        "email": USERNAME,
        "password": hashlib.md5(PASSWORD.encode()).hexdigest(),
    }
    r = requests.post(f"{MLX_BASE}/user/signin", json=payload)
    if r.status_code != 200:
        print(f"\nError during login: {r.text}\n")
    else:
        response = r.json()["data"]
    token = response["token"]
    return token


def start_profile() -> webdriver:
    r = requests.get(
        f"{MLX_LAUNCHER_V2}/profile/f/{FOLDER_ID}/p/{PROFILE_ID}/start?automation_type=selenium",
        headers=HEADERS,
    )
    response = r.json()
    if r.status_code != 200:
        print(f"\nError while starting profile: {r.text}\n")
    else:
        print(f"\nProfile {PROFILE_ID} started.\n")
    selenium_port = response["data"]["port"]
    driver = webdriver.Remote(
        command_executor=f"{LOCALHOST}:{selenium_port}", options=ChromiumOptions()
    )
    # For Stealthfox profiles use: options=Options()
    # For Mimic profiles use: options=ChromiumOptions()
    return driver


def stop_profile() -> None:
    r = requests.get(f"{MLX_LAUNCHER}/profile/stop/p/{PROFILE_ID}", headers=HEADERS)
    if r.status_code != 200:
        print(f"\nError while stopping profile: {r.text}\n")
    else:
        print(f"\nProfile {PROFILE_ID} stopped.\n")

token = signin()
HEADERS.update({"Authorization": f"Bearer {token}"})

Mẫu này tương tự như ví dụ tự động hóa Selenium, ngoại trừ việc nó có mô-đun được nhập sau đây ở phần đầu (chúng ta sẽ cần để thu thập dữ liệu):

from selenium.webdriver.common.by import By

 

Bước 3: chọn trang web để tự động hóa quá trình đăng nhập

Bạn có thể sử dụng bất kỳ trang web nào có trang đăng nhập. Tuy nhiên, với hướng dẫn này, chúng tôi khuyên bạn nên thử trang này – rất hữu ích để thực hành các tác vụ tự động hóa: Login Page.

Bước 4: tìm kiếm thông tin mục tiêu

Trong trường hợp của chúng tôi, đó sẽ là thanh văn bản cho thông tin xác thực và nút đăng nhập:

Zight 2025-12-04 lúc 14.46.35

Chúng ta sẽ có cả 3 thành phần trên trang này. Sau đây là những gì bạn có thể làm:

  1. Mở DevTools trên trình duyệt của bạn. Sau đây là cách thực hiện đối với trình duyệt dựa trên Chromium và Firefox:
    1. Windows và Linux: nhấn Ctrl + Shift + I
    2. macOS: nhấn Cmd + Option + I
  2. Hãy đảm bảo rằng bạn đang ở trên tab “Elements”
  3. Sử dụng phím nóng tìm kiếm để tìm giá trị mục tiêu
    1. Windows và Linux : CTRL + F
    2. macOS : Cmd + F
  4. Tìm giá trị bạn cần sử dụng để thu thập. Trong trường hợp của chúng tôi, giá trị đó sẽ như sau:
    1. id="username" cho trường văn bản Tên người dùng
    2. id="password" cho trường văn bản Mật khẩu
    3. class="radius" cho nút Đăng nhập
  5. Chọn các phần tử có thẻ trong tab “Phần tử”
  6. Nhấp vào giá trị đã chọn và sao chép giá trị của thuộc tính id hoặc class . Ví dụ: nếu bạn thấy id="username" , bạn cần sao chép username
  7. Viết giá trị ở đâu đó – bạn sẽ cần nó sau
Zight 2025-12-04 lúc 15.19.28

Bước 5: quay lại IDE và thêm chuỗi mã mới

  1. Quay lại IDE theo lựa chọn của bạn (ví dụ: VS Code)
  2. Nhấp vào trường mã và thêm một biến để mở và thực hiện các hành động trong hồ sơ: driver = start_profile()
  3. Thêm driver.get(“<trang web của bạn>”) . Trong trường hợp này, lệnh sẽ là:
    driver.get("https://the-internet.herokuapp.com/login")
  4. Bây giờ chúng ta cần một số độ trễ cho tập lệnh để nó sẽ cố gắng thực hiện các lệnh khác sau 5 giây kể từ khi mở trang web: time.sleep(5)

Bước 6: tạo tập lệnh để tìm phần tử

Sử dụng lệnh này để tìm phần tử: driver.find_element(By.<thuộc tính trên trang>, "<phần tử>") . Lệnh này cho tập lệnh biết chính xác những gì cần tìm trên trang. Chúng tôi đã sao chép một số giá trị cho thuộc tính id và class trong trường hợp sử dụng của mình. Thêm các chuỗi tương ứng từ danh sách bên dưới:

  1. Thêm chuỗi sau vào trường văn bản tên người dùng:
    driver.find_element(By.ID, "username")
  2. Thêm chuỗi sau vào trường văn bản mật khẩu:
    password = driver.find_element(By.ID, "password")
  3. Thêm chuỗi sau vào nút đăng nhập:
    button = driver.find_element(By.CLASS_NAME, "radius")

Chúng ta sẽ cần sử dụng những giá trị đó sau, vì vậy chúng ta cần tạo biến cho các lệnh. Bạn có thể đặt tên chúng theo bất kỳ cách nào bạn muốn, sau đây là các ví dụ:

login = driver.find_element(By.ID, "username")
password = driver.find_element(By.ID, "password")
button = driver.find_element(By.CLASS_NAME, "radius")

Bước 7: cho kịch bản biết phải làm gì

Chúng ta đã cho script biết nó cần phát hiện những gì trên trang. Bây giờ, chúng ta sẽ yêu cầu script thêm thông tin đăng nhập và đăng nhập vào trang. Bạn sẽ sử dụng các hàm sau cho việc này:

  • send_keys() để cung cấp các ký hiệu cần nhập vào các trường văn bản
  • click() để mô phỏng cú nhấp chuột trái

Trong trường hợp sử dụng của chúng tôi, bạn có thể nhận thấy rằng trang web đã nêu các giá trị sau cho thông tin đăng nhập:

  • tomsmith cho tên người dùng
  • SuperSecretPassword! cho mật khẩu

Chúng ta cần yêu cầu tập lệnh nhập các giá trị đó và nhấp vào nút đăng nhập. Dưới đây là các chuỗi mã:

login.send_keys("tomsmith")
password.send_keys("SuperSecretPassword!")
button.click()

Bước 8: hoàn thiện kịch bản bằng thông báo văn bản

Tập lệnh của chúng ta đã sẵn sàng. Bạn có thể tiếp tục chuẩn bị và chạy tập lệnh, nhưng chúng tôi khuyên bạn nên thêm hàm print() để thông báo cho bạn biết tập lệnh đã hoàn tất thành công. Hãy nghĩ ra nội dung cho hàm và thêm vào cuối tập lệnh:

print("Signed in")

Đây là tùy chọn, nhưng bạn cũng có thể thêm hàm stop_profile() sau print(). Chúng tôi khuyên bạn không nên sử dụng hàm này vì chuỗi đó không phù hợp với mục đích của tập lệnh.

 

Bước 9: Chuẩn bị tập lệnh trước khi chạy nó

  1. Cài đặt các thư viện Python sau (tìm tài liệu của ID E của bạn để biết thêm chi tiết):
    1. requests
    2. selenium
  2. Chèn các giá trị của bạn vào các biến bên dưới trong tập lệnh:
    1. USERNAME: email tài khoản Multilogin X của bạn
    2. PASSWORD: mật khẩu tài khoản Multilogin X của bạn (không cần mã hóa MD5)
    3. FOLDER_ ID, PROFILE_ ID: tìm các giá trị này bằng hướng dẫn của chúng tôi trên DevTools hoặc Postman

Bước 10: chạy tập lệnh

  1. Mở ứng dụng trên máy tính (hoặc kết nối với tác nhân nếu bạn đang sử dụng giao diện web)
  2. Theo mặc định, tập lệnh bên dưới hoạt động với Mimic. Để sử dụng cho Stealthfox, hãy thay options=ChromiumOptions() bằng options=Options() trong dòng sau:
    driver = webdriver.Remote(command_executor=f'{LOCALHOST}:{selenium_port}', options=ChromiumOptions())
  3. Chạy tệp .py với mã tự động hóa của bạn

Để chạy tập lệnh trong VS Code, hãy nhấp vào “Chạy” → “Chạy mà không cần gỡ lỗi” (hoặc “Bắt đầu gỡ lỗi”).

 

Nếu bạn đã làm đúng mọi bước, bạn sẽ thấy kết quả trong terminal. Bạn cũng sẽ thấy một tài khoản đã đăng nhập trong hồ sơ.

Trình quét quảng cáo - Internet Hoa Kỳ 2025-12-04 lúc 4:48:42 CH

Ghi chú

Giờ thì bạn đã sẵn sàng rồi đấy! Bạn không bị giới hạn bởi những lựa chọn đó nữa. Python và Selenium là những công cụ khá linh hoạt và còn nhiều tiềm năng hơn nữa. Dưới đây là một vài mẹo:

  • Bạn có thể buộc tập lệnh chờ dựa trên các điều kiện cụ thể (ví dụ: tập lệnh sẽ chờ cho đến khi một phần tử cụ thể xuất hiện trên trang). Bạn có thể tìm hiểu thêm về điều này trong tài liệu Selenium tương ứng: Waiting Strategies
  • Bạn có thể kết hợp điều này và tập lệnh từ bài viết sau: Web scraping with Selenium 101. Nó sẽ tạo ra điểm khởi đầu tuyệt vời cho dự án tự động hóa của bạn!
  • Có nhiều cách triển khai Selenium hơn. Hãy xem trung tâm trợ giúp của họ để biết thêm chi tiết: Selenium Documentation

Toàn bộ Script

import requests
import hashlib
import time
from selenium import webdriver
from selenium.webdriver.chromium.options import ChromiumOptions
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By

MLX_BASE = "https://api.multilogin.com"
MLX_LAUNCHER = "https://launcher.mlx.yt:45001/api/v1"
MLX_LAUNCHER_V2 = (
    "https://launcher.mlx.yt:45001/api/v2"  # recommended for launching profiles
)
LOCALHOST = "http://127.0.0.1"
HEADERS = {"Accept": "application/json", "Content-Type": "application/json"}
# TODO: Insert your account information in both variables below
USERNAME = ""
PASSWORD = ""
# TODO: Insert the Folder ID and the Profile ID below
FOLDER_ID = ""
PROFILE_ID = ""


def signin() -> str:
    payload = {
        "email": USERNAME,
        "password": hashlib.md5(PASSWORD.encode()).hexdigest(),
    }
    r = requests.post(f"{MLX_BASE}/user/signin", json=payload)
    if r.status_code != 200:
        print(f"\nError during login: {r.text}\n")
    else:
        response = r.json()["data"]
    token = response["token"]
    return token


def start_profile() -> webdriver:
    r = requests.get(
        f"{MLX_LAUNCHER_V2}/profile/f/{FOLDER_ID}/p/{PROFILE_ID}/start?automation_type=selenium",
        headers=HEADERS,
    )
    response = r.json()
    if r.status_code != 200:
        print(f"\nError while starting profile: {r.text}\n")
    else:
        print(f"\nProfile {PROFILE_ID} started.\n")
    selenium_port = response["data"]["port"]
    driver = webdriver.Remote(
        command_executor=f"{LOCALHOST}:{selenium_port}", options=ChromiumOptions()
    )
    # For Stealthfox profiles use: options=Options()
    # For Mimic profiles use: options=ChromiumOptions()
    return driver


def stop_profile() -> None:
    r = requests.get(f"{MLX_LAUNCHER}/profile/stop/p/{PROFILE_ID}", headers=HEADERS)
    if r.status_code != 200:
        print(f"\nError while stopping profile: {r.text}\n")
    else:
        print(f"\nProfile {PROFILE_ID} stopped.\n")


token = signin()
HEADERS.update({"Authorization": f"Bearer {token}"})
driver = start_profile()
driver.get("https://the-internet.herokuapp.com/login")
time.sleep(5)
login = driver.find_element(By.ID, "username")
password = driver.find_element(By.ID, "password")
button = driver.find_element(By.CLASS_NAME, "radius")
login.send_keys("tomsmith")
password.send_keys("SuperSecretPassword!")
button.click()
print("Signed in")

Bài viết này có chứa các liên kết của bên thứ ba mà chúng tôi không chính thức xác nhận.

 

Bài viết này có hữu ích không?

Góp ý về bài viết này

Trong bài viết này

  • Bước 1: Chuẩn bị IDE hoặc phần mềm tương tự
  • Bước 2: Tạo tập lệnh kết nối với API và xác định các hàm
  • Bước 3: chọn trang web để tự động hóa quá trình đăng nhập
  • Bước 4: tìm kiếm thông tin mục tiêu
  • Bước 5: quay lại IDE và thêm chuỗi mã mới
  • Bước 6: tạo tập lệnh để tìm phần tử
  • Bước 7: cho kịch bản biết phải làm gì
  • Bước 8: hoàn thiện kịch bản bằng thông báo văn bản
  • Bước 9: Chuẩn bị tập lệnh trước khi chạy nó
  • Bước 10: chạy tập lệnh
  • Ghi chú
  • Toàn bộ Script

Cộng đồng Multilogin

Hãy cập nhật thông tin, chia sẻ ý kiến của bạn và kết nối với người khác!

Telegram Icon Tham gia Telegram

Đọc thêm về chủ đề này

Blog Post Img

10 Best Datacenter Proxies for Web Scraping (2025 Edition)

Apr 2, 2025 5 min read
Google SERP Img

What is a Google SERP Proxy and Why Should You Care?

Apr 1, 2025 6 min read
UK Proxy Img

What Are Dedicated UK Proxies? Everything You Need to Know

Apr 1, 2025 6 min read
Related Article Title Icon

Bài viết liên quan

  • Cách lấy mã thông báo API bằng Python
  • Thu thập dữ liệu Web cơ bản bằng Selenium
  • Xuất chi tiết proxy từ hồ sơ
  • Chuyển đổi danh sách proxy bên ngoài thành các tệp JSON có hỗ trợ API

NỀN TẢNG CHỐNG PHÁT HIỆN

  • Trình duyệt chống phát hiện
  • Proxy Dân Cư
  • Trình duyệt chống phát hiện di động
  • Quản lý nhiều tài khoản
  • Trình duyệt headless
  • Tự động hóa web
  • TỰ Động Hóa Hành Động Nhanh AI

ĐA KẾ TOÁN

  • Tạo nhiều tài khoản Facebook
  • Tạo nhiều tài khoản Gmail
  • Tạo nhiều tài khoản LinkedIn
  • Tạo nhiều tài khoản Amazon
  • Tạo nhiều tài khoản OnlyFans
  • Tạo nhiều tài khoản Twitter
  • Tạo nhiều tài khoản TikTok

PROXY ĐỊA LÝ

  • ANH proxy
  • HOA KỲ proxy
  • Nhật bản proxy
  • Ấn độ proxy
  • Pakistan proxy
  • Trung quốc proxy
  • New Zealand proxy

NGUỒN

  • Kiến thức cơ bản
  • Tài liệu API
  • Bảng chú giải
  • Blog
  • Trạng thái ứng dụng
  • Ghi chú phát hành

SO SÁNH

  • Multilogin vs. Gologin
  • Multilogin vs. Adspower
  • Multilogin vs. Dolphin Anty
  • Multilogin vs. Incognition
  • Multilogin vs. Octo Browser
  • Multilogin vs. Undetectable
  • Multilogin vs. MoreLogin

PROXY NỀN TẢNG

  • Proxy di động
  • Proxy Reddit
  • Proxy Facebook
  • Proxy SOCKS5
  • Proxy Instagram
  • Proxy OnlyFans
  • Proxy LinkedIn

CÔNG CỤ MIỄN PHÍ

  • URL trực tuyến Để Chuyển Đổi Văn Bản

LIÊN HỆ VỚI CHÚNG TÔI

  • Hỗ trợ 24/7
    [email protected]
  • Liên hệ bán hàng
  • Chương trình giới thiệu
  • Chương trình liên kết
  • Trang giá
  • Nghề nghiệp

© 2025 Multilogin. Bảo lưu mọi quyền.

  • Chính sách bảo mật
  • Điều khoản dịch vụ
  • Chính sách cookie
Multilogin abstract watermark
  • NỀN TẢNG CHỐNG PHÁT HIỆN

    • Trình duyệt chống phát hiện
    • Proxy Dân Cư
    • Trình duyệt chống phát hiện di động
    • Quản lý nhiều tài khoản
    • Trình duyệt headless
    • Tự động hóa web
    • TỰ Động Hóa Hành Động Nhanh AI
  • ĐA KẾ TOÁN

    • Tạo nhiều tài khoản Facebook
    • Tạo nhiều tài khoản Gmail
    • Tạo nhiều tài khoản LinkedIn
    • Tạo nhiều tài khoản Amazon
    • Tạo nhiều tài khoản OnlyFans
    • Tạo nhiều tài khoản Twitter
    • Tạo nhiều tài khoản TikTok
  • PROXY ĐỊA LÝ

    • ANH proxy
    • HOA KỲ proxy
    • Nhật bản proxy
    • Ấn độ proxy
    • Pakistan proxy
    • Trung quốc proxy
    • New Zealand proxy
  • NGUỒN

    • Kiến thức cơ bản
    • Tài liệu API
    • Bảng chú giải
    • Blog
    • Trạng thái ứng dụng
    • Ghi chú phát hành
  • SO SÁNH

    • Multilogin vs. Gologin
    • Multilogin vs. Adspower
    • Multilogin vs. Dolphin Anty
    • Multilogin vs. Incognition
    • Multilogin vs. Octo Browser
    • Multilogin vs. Undetectable
    • Multilogin vs. MoreLogin
  • PROXY NỀN TẢNG

    • Proxy di động
    • Proxy Reddit
    • Proxy Facebook
    • Proxy SOCKS5
    • Proxy Instagram
    • Proxy OnlyFans
    • Proxy LinkedIn
  • CÔNG CỤ MIỄN PHÍ

    • URL trực tuyến Để Chuyển Đổi Văn Bản
  • LIÊN HỆ VỚI CHÚNG TÔI

    • Hỗ trợ 24/7
      [email protected]
    • Liên hệ bán hàng
    • Chương trình giới thiệu
    • Chương trình liên kết
    • Trang giá
    • Nghề nghiệp
Multilogin abstract watermark
  • Chính sách bảo mật
  • Điều khoản dịch vụ
  • Chính sách cookie

© 2025 Multilogin. Bảo lưu mọi quyền.

Expand