🥳Tham gia Cộng đồng Scrapelessnhận thử nghiệm miễn phí của bạn để truy cập Bộ công cụ Web Scraping mạnh mẽ của chúng tôi!
Quay lại blog

Cách lấy dữ liệu báo giá chứng khoán Google Finance bằng Python

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

14-Mar-2025

Trong thế giới tài chính nhanh nhạy, việc truy cập dữ liệu thị trường chứng khoán cập nhật và chính xác là điều cần thiết đối với các nhà đầu tư, nhà giao dịch và nhà phân tích. Google Finance là một nguồn tài nguyên vô giá cung cấp báo giá chứng khoán thời gian thực, dữ liệu tài chính lịch sử, tin tức và tỷ giá hối đoái. Học cách thu thập dữ liệu này bằng Python có thể mang lại lợi ích lớn cho những người muốn tổng hợp dữ liệu, thực hiện phân tích tâm lý, dự báo thị trường hoặc quản lý rủi ro hiệu quả.


Tại sao phải thu thập dữ liệu Google Finance?

Việc thu thập dữ liệu Google Finance có thể mang lại lợi ích vì nhiều lý do, bao gồm:

  • Dữ liệu chứng khoán thời gian thực – Truy cập giá chứng khoán cập nhật, xu hướng thị trường và hiệu suất lịch sử.
  • Phân tích thị trường tự động – Thu thập dữ liệu tài chính quy mô lớn để phân tích xu hướng, quản lý danh mục đầu tư hoặc giao dịch thuật toán.
  • Thông tin về công ty – Thu thập tóm tắt tài chính, báo cáo thu nhập và hiệu suất chứng khoán để nghiên cứu đầu tư.
  • Nghiên cứu đối thủ cạnh tranh & ngành – Theo dõi tình hình tài chính của đối thủ cạnh tranh và xu hướng ngành để đưa ra quyết định dựa trên dữ liệu.
  • Phân tích tin tức & tâm lý – Trích xuất bài báo và cập nhật liên quan đến cổ phiếu hoặc ngành cụ thể để theo dõi tâm lý.

Dữ liệu sẽ được thu thập

Dữ liệu sẽ được thu thập

Cách thu thập dữ liệu báo giá chứng khoán Google Finance trong Python

Bước 1. Cấu hình môi trường

  • Python: Phần mềm là cốt lõi của việc chạy Python. Bạn có thể tải xuống phiên bản chúng ta cần từ trang web chính thức như hình dưới đây. Tuy nhiên, không nên tải xuống phiên bản mới nhất. Bạn có thể tải xuống phiên bản cách phiên bản mới nhất 1,2 phiên bản.

  • Python IDE: Bất kỳ IDE nào hỗ trợ Python đều hoạt động, nhưng chúng tôi khuyên dùng PyCharm. Đó là một công cụ phát triển được thiết kế đặc biệt cho Python. Đối với phiên bản PyCharm, chúng tôi khuyên dùng PyCharm Community Edition miễn phí

Python IDE

Lưu ý: Nếu bạn là người dùng Windows, đừng quên chọn tùy chọn "Thêm python.exe vào PATH" trong trình hướng dẫn cài đặt. Điều này sẽ cho phép Windows sử dụng Python và các lệnh trong terminal. Vì Python 3.4 trở lên đã bao gồm nó theo mặc định, bạn không cần phải cài đặt thủ công.

Bây giờ bạn có thể kiểm tra xem Python đã được cài đặt chưa bằng cách mở terminal hoặc command prompt và nhập lệnh sau:

Copy
python --version

Bước 2. Cài đặt các phụ thuộc

Nên tạo một môi trường ảo để quản lý các phụ thuộc của dự án và tránh xung đột với các dự án Python khác. Điều hướng đến thư mục dự án trong terminal và thực hiện lệnh sau để tạo một môi trường ảo có tên google_lens:

Copy
python -m venv google_finance

Kích hoạt môi trường ảo dựa trên hệ thống của bạn:

  • Windows:
language Copy
google_finance_env\Scripts\activate
  • MacOS/Linux:
language Copy
source google_finance_env/bin/activate

Sau khi kích hoạt môi trường ảo, hãy cài đặt các thư viện Python cần thiết để thu thập dữ liệu trên web. Thư viện để gửi yêu cầu trong Python là requests, và thư viện chính để thu thập dữ liệu là BeautifulSoup4. Cài đặt chúng bằng các lệnh sau:

language Copy
pip install requests
pip install beautifulsoup4
pip install playwright

Bước 3. Thu thập dữ liệu

Để trích xuất thông tin chứng khoán từ Google Finance, trước tiên chúng ta cần hiểu cách sử dụng URL của trang web để thu thập chứng khoán mong muốn. Hãy lấy chỉ số Nasdaq làm ví dụ, nó chứa nhiều chứng khoán mà chúng ta có thể lấy thông tin. Để truy cập ký hiệu của từng chứng khoán, chúng ta có thể sử dụng bộ lọc chứng khoán Nasdaq từ liên kết này. Bây giờ chúng ta hãy chọn META làm chứng khoán mục tiêu. Với chỉ số và chứng khoán đã có, chúng ta có thể xây dựng đoạn mã đầu tiên của script.

Chúng tôi bảo vệ mạnh mẽ quyền riêng tư của trang web. Tất cả dữ liệu trong blog này là công khai và chỉ được sử dụng để minh họa quá trình thu thập dữ liệu. Chúng tôi không lưu bất kỳ thông tin và dữ liệu nào.

language Copy
import requests
from bs4 import BeautifulSoup
BASE_URL = "https://www.google.com/finance"
INDEX = "NASDAQ"
SYMBOL = "META"
LANGUAGE = "en"
TARGET_URL = f"{BASE_URL}/quote/{SYMBOL}:{INDEX}?hl={LANGUAGE}"

Bây giờ chúng ta có thể sử dụng thư viện Requests để thực hiện một yêu cầu HTTP trên TARGET_URL và tạo một instance Beautiful Soup để thu thập nội dung HTML.

language Copy
thực hiện yêu cầu HTTP
page = requests.get(TARGET_URL)# sử dụng bộ phân tích cú pháp HTML để lấy nội dung từ "page"
soup = BeautifulSoup(page.content, "html.parser")

Trước khi bắt đầu thu thập dữ liệu, trước tiên chúng ta cần xử lý phần tử HTML (TARGET_URL) bằng cách kiểm tra trang web.

Mô tả chứng khoán

Các mục mô tả chứng khoán được thể hiện bằng lớp gyFHrc. Bên trong mỗi phần tử như vậy, có một lớp đại diện cho tiêu đề của mục (ví dụ: "Giá đóng cửa trước") và giá trị tương ứng (ví dụ: $597.99). Tiêu đề có thể được lấy từ lớp mfs7Fc, trong khi giá trị đến từ lớp P6K39c.

Tiêu đề chứng khoán
Giá trị chứng khoán

Danh sách đầy đủ các mục cần thu thập như sau:

  • Giá đóng cửa trước
  • Phạm vi ngày
  • Phạm vi năm
  • Vốn hóa thị trường
  • Khối lượng trung bình
  • Tỷ lệ P/E
  • Tỷ suất cổ tức
  • Sàn giao dịch chính
  • Giám đốc điều hành
  • Được thành lập
  • Trang web
  • Nhân viên

Bây giờ chúng ta hãy xem cách lấy các mục này bằng mã Python.

Copy
# lấy các mục mô tả chứng khoán
items = soup.find_all("div", {"class": "gyFHrc"})


# tạo một từ điển để lưu mô tả chứng khoán
stock_description = {}

# lặp qua các mục và thêm chúng vào từ điển
for item in items:
    item_description = item.find("div", {"class": "mfs7Fc"}).text
    item_value = item.find("div", {"class": "P6K39c"}).text
    stock_description[item_description] = item_value


print(stock_description)

Đây chỉ là một ví dụ về một script đơn giản có thể được tích hợp vào bot giao dịch, ứng dụng hoặc bảng điều khiển đơn giản để theo dõi các chứng khoán yêu thích của bạn.

Mã đầy đủ

Có rất nhiều thuộc tính dữ liệu khác mà bạn có thể lấy từ trang, nhưng hiện tại, mã đầy đủ trông hơi giống như thế này.

language Copy
import requests
from bs4 import BeautifulSoup
BASE_URL = "https://www.google.com/finance"
INDEX = "NASDAQ"
SYMBOL = "META"
LANGUAGE = "en"
TARGET_URL = f"{BASE_URL}/quote/{SYMBOL}:{INDEX}?hl={LANGUAGE}"# thực hiện yêu cầu HTTP
page = requests.get(TARGET_URL)# sử dụng bộ phân tích cú pháp HTML để lấy nội dung từ "page"
soup = BeautifulSoup(page.content, "html.parser")# lấy các mục mô tả chứng khoán
items = soup.find_all("div", {"class": "gyFHrc"})# tạo một từ điển để lưu mô tả chứng khoán
stock_description = {}# lặp qua các mục và thêm chúng vào từ điểnfor item in items:
for item in items:
    item_description = item.find("div", {"class": "mfs7Fc"}).text
    item_value = item.find("div", {"class": "P6K39c"}).text
    stock_description[item_description] = item_value

Dưới đây là một số ví dụ về kết quả:

một số ví dụ về kết quả

Hạn chế khi thu thập dữ liệu Google Finance

Sử dụng phương pháp trên, bạn có thể tạo một trình thu thập dữ liệu nhỏ, nhưng nếu bạn định thực hiện thu thập dữ liệu quy mô lớn, trình thu thập dữ liệu này sẽ không tiếp tục cung cấp dữ liệu cho bạn. Google rất nhạy cảm về việc thu thập dữ liệu và cuối cùng sẽ chặn IP của bạn.

Khi IP của bạn bị chặn, bạn sẽ không thể thu thập bất cứ thứ gì và đường dẫn dữ liệu của bạn cuối cùng sẽ bị hỏng. Vậy, làm thế nào để khắc phục vấn đề này? Có một giải pháp rất đơn giản và đó là sử dụng Google Finance Scraping API.

Hãy xem cách thu thập dữ liệu không giới hạn từ Google Finance bằng API này.


Tại sao nên sử dụng Scrapeless Google Finance Scraping API

Chất lượng và độ chính xác của dữ liệu

  • Dữ liệu chính xác cao: Scrapeless SerpApi luôn cung cấp dữ liệu Google Finance chính xác, đáng tin cậy và cập nhật, đảm bảo người dùng có thể nhận được thông tin thị trường xác thực và hữu ích nhất.
  • Cập nhật thời gian thực: Có thể nhận được dữ liệu mới nhất trên Google Finance trong thời gian thực, bao gồm báo giá chứng khoán thời gian thực, xu hướng thị trường, v.v., là điều cần thiết đối với những người dùng cần đưa ra quyết định đầu tư kịp thời.

Hỗ trợ nhiều ngôn ngữ và vị trí

  • Hỗ trợ đa ngôn ngữ: Hỗ trợ nhiều ngôn ngữ, và người dùng có thể nhận được dữ liệu tài chính bằng các ngôn ngữ khác nhau theo nhu cầu của họ để đáp ứng nhu cầu của người dùng ở các khu vực khác nhau trên thế giới.
  • Tùy chỉnh vị trí: Bạn có thể nhận được kết quả tìm kiếm được tùy chỉnh dựa trên vị trí địa lý, loại thiết bị và các tham số khác được chỉ định, điều này rất hữu ích để phân tích tình hình thị trường ở các khu vực khác nhau hoặc thực hiện nghiên cứu thị trường cục bộ.

Ưu điểm về hiệu suất và chi phí

  • Tốc độ siêu nhanh: Với thời gian phản hồi trung bình chỉ 1-2 giây, Scrapeless SerpApi là một trong những API thu thập dữ liệu tìm kiếm nhanh nhất trên thị trường, có thể nhanh chóng cung cấp cho người dùng dữ liệu cần thiết.
  • Tiết kiệm chi phí: Scrapeless SerpApi cung cấp API Tìm kiếm Google với giá chỉ 0,1 đô la cho mỗi nghìn truy vấn. Mô hình định giá này rất tiết kiệm chi phí cho các dự án thu thập dữ liệu quy mô lớn.
    Tích hợp
  • Dễ dàng tích hợp: Scrapeless SerpApi hỗ trợ tích hợp với nhiều ngôn ngữ lập trình phổ biến (chẳng hạn như Python, Node.js, Golang, v.v.), và người dùng có thể dễ dàng nhúng nó vào các ứng dụng hoặc công cụ phân tích của riêng họ.
    Ổn định và đáng tin cậy
  • Khả năng hoạt động cao: Scrapeless SerpApi có khả năng hoạt động và độ ổn định cao, có thể đảm bảo dịch vụ không bị gián đoạn cho người dùng trong quá trình thu thập dữ liệu dài hạn và tần suất cao.
  • Hỗ trợ chuyên nghiệp: Scrapeless SerpApi cung cấp hỗ trợ kỹ thuật chuyên nghiệp và dịch vụ khách hàng để giúp người dùng giải quyết các vấn đề gặp phải trong quá trình sử dụng và đảm bảo người dùng có thể thu thập và sử dụng dữ liệu một cách suôn sẻ.

Cách thu thập dữ liệu Google Finance bằng Scrapeless

Bước 1: Đăng ký Scrapeless và lấy khóa API

  1. Nếu bạn chưa có tài khoản Scrapeless, hãy truy cập trang web Scrapeless và đăng ký. Bạn có thể nhận được 20.000 truy vấn tìm kiếm miễn phí.
  2. Sau khi đăng ký, đăng nhập vào bảng điều khiển của bạn.
  3. Trong bảng điều khiển, điều hướng đến Quản lý Khóa API và nhấp vào Tạo Khóa API. Sao chép khóa API được tạo, đây sẽ là thông tin xác thực của bạn khi gọi Scrapeless API.
lấy khóa API

Bước 2: Truy cập Deep SerpApi Playground

  • Sau đó điều hướng đến phần "Deep SerpApi".

![điều hướng đến phần "Deep SerpApi"]](https://assets.scrapeless.com/prod/posts/scrape-google-finance-python/d614e31ce7686a4df82888093b444db5.png)

Bước 3: Đặt tham số tìm kiếm

  • Trong Playground, nhập từ khóa tìm kiếm của bạn, chẳng hạn như "GOOGL:NASDAQ".
  • Đặt các tham số khác, chẳng hạn như Thuật ngữ truy vấn, ngôn ngữ, thời gian, v.v.

Bạn cũng có thể nhấp để xem tài liệu API chính thức của Scrapeless để tìm hiểu về các tham số của Google Finance.

Đặt tham số tìm kiếm

Bước 4: Thực hiện tìm kiếm

  • Nhấp vào nút "Bắt đầu tìm kiếm", và Playground sẽ gửi yêu cầu đến Deep Serp API và trả về dữ liệu JSON có cấu trúc.

Bước 5: Xem và xuất dữ liệu

  • Duyệt qua dữ liệu JSON được trả về để xem thông tin chi tiết.
  • Nếu cần, bạn có thể nhấp vào "Sao chép" ở góc trên bên phải để xuất dữ liệu sang định dạng CSV hoặc JSON để phân tích thêm.

Hỗ trợ nhà phát triển miễn phí:
Tích hợp Scrapeless Deep SerpApi vào công cụ AI, ứng dụng hoặc dự án của bạn (chúng tôi đã hỗ trợ Dify và sẽ hỗ trợ Langchain, Langflow, FlowiseAI và các framework khác trong tương lai).
Chia sẻ kết quả tích hợp của bạn trên mạng xã hội và bạn sẽ nhận được hỗ trợ nhà phát triển miễn phí từ 1 đến 12 tháng, lên đến 500K lượt sử dụng mỗi tháng.
Nắm bắt cơ hội này để cải thiện dự án của bạn và tận hưởng nhiều hỗ trợ phát triển hơn! Bạn cũng có thể liên hệ với Liam qua Discord để biết thêm chi tiết.

Cách tích hợp Scrapeless API

Đây là mã mẫu để thu thập dữ liệu kết quả Google Finance bằng Scrapeless API:

language Copy
import json
import requests


class Payload:
    def __init__(self, actor, input_data):
        self.actor = actor
        self.input = input_data


def send_request():
    host = "api.scrapeless.com"
    url = f"https://{host}/api/v1/scraper/request"
    token = "your api key"

    headers = {
        "x-api-token": token
    }

    input_data = {
        "q": "GOOG:NASDAQ",
        "window": "MAX",
        .....
    }

    payload = Payload("scraper.google.finance", input_data)

    json_payload = json.dumps(payload.__dict__)

    response = requests.post(url, headers=headers, data=json_payload)

    if response.status_code != 200:
        print("Error:", response.status_code, response.text)
        return

    print("body", response.text)


if __name__ == "__main__":
    send_request()

Điều chỉnh các tham số truy vấn theo nhu cầu để có kết quả chính xác hơn. Để biết thêm thông tin về các tham số API, bạn có thể xem tài liệu API chính thức của Scrapeless
Bạn phải thay thế YOUR-API-KEY bằng khóa API mà bạn đã sao chép.


Tài nguyên bổ sung

Cách thu thập dữ liệu Google News bằng Python
Cách bỏ qua Cloudflare bằng Puppeteer
Cách thu thập dữ liệu kết quả Google Lens bằng Scrapeless

Kết luận

Tóm lại, việc thu thập dữ liệu báo giá chứng khoán Google Finance trong Python là một kỹ thuật mạnh mẽ để truy cập thông tin tài chính thời gian thực. Bằng cách sử dụng các thư viện như requests và BeautifulSoup, hoặc các công cụ tiên tiến hơn như Selenium, bạn có thể trích xuất và phân tích hiệu quả dữ liệu thị trường để đưa ra quyết định đầu tư của mình. Hãy nhớ tôn trọng các điều khoản dịch vụ của trang web và cân nhắc sử dụng các API chính thức khi có sẵn để truy cập dữ liệu bền vững.

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục