🥳Hãy tham gia Cộng đồng ScrapelessYêu cầu dùng thử miễn phí để truy cập Bộ công cụ quét web mạnh mẽ của chúng tôi!
Quay lại Blog

Cách lấy dữ liệu Google Flights bằng Python

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

27-Dec-2024

Google Flights là một trong những công cụ tìm kiếm chuyến bay phổ biến nhất, cung cấp giá vé máy bay, lịch trình và thông tin tuyến đường theo thời gian thực. Nhưng làm thế nào bạn có thể thu thập và phân tích dữ liệu này một cách hiệu quả để sử dụng cho riêng mình? Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tự động thu thập dữ liệu Google Flights bằng thư viện Scrapeless Python. Công cụ này giúp bạn dễ dàng thu thập và phân tích dữ liệu Google Flights bằng cách đơn giản hóa quy trình và đảm bảo rằng quy trình làm việc thu thập dữ liệu của bạn được tối ưu hóa về tốc độ và độ tin cậy.

Tôi có thể thu thập dữ liệu từ Google Flights không?

Dữ liệu trên Google Flights được coi là dữ liệu công khai, có nghĩa là không có luật nào cấm rõ ràng việc thu thập thông tin này. Tuy nhiên, điều quan trọng là phải thu thập dữ liệu Google Flights một cách có đạo đức:

  • Tuân thủ Điều khoản dịch vụ: Xem xét và hiểu rõ các điều khoản của Google để tránh vi phạm.
  • Tôn trọng Robots.txt: Làm theo các hướng dẫn được cung cấp trong tệp này để đảm bảo bạn tuân thủ các quy tắc của trang web liên quan đến truy cập tự động

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

Tại sao bạn muốn thu thập dữ liệu Google Flights? Tôi có thể đưa ra một ví dụ.

Đó là...

Hopper là một nền tảng du lịch phổ biến tập trung vào dự đoán giá vé. Nền tảng này thu thập thông tin chuyến bay từ Google Flights và các nền tảng du lịch trực tuyến khác để cung cấp cho người dùng gợi ý về việc giá của các chuyến bay nhất định sẽ tăng hay giảm trong những tháng tới. Theo dữ liệu công khai của Hopper, họ đã giúp người dùng tiết kiệm hàng tỷ đô la thông qua các dự đoán giá chính xác, và lợi nhuận của chính nền tảng cũng tăng lên đáng kể.

Bạn có thể trích xuất dữ liệu gì từ Google Flights?

Google Flights có rất nhiều thông tin có giá trị. Đầu tiên, áp dụng bộ lọc vào điểm xuất phát và điểm đến của bạn. Ví dụ: tôi đang tìm kiếm một chuyến bay một chiều từ New York đến Boston. Sau khi đặt bộ lọc, bạn sẽ thấy một danh sách các tùy chọn chuyến bay.
Dữ liệu bạn có thể trích xuất từ Google Flights

Chúng tôi sẽ trích xuất một số chi tiết chính, bao gồm:

  • Tên chuyến bay
  • Giờ khởi hành
  • Giờ đến
  • Thời lượng chuyến bay
  • Giá cả
  • Số điểm dừng
  • Khí thải CO2 (để giúp bạn chọn các tùy chọn du lịch thân thiện với môi trường hơn)
  • Thay đổi lượng khí thải CO2.

Những trở ngại khi thu thập thông tin Google Flights là gì?

Khi cố gắng thu thập dữ liệu Google Flights, có một số trở ngại chính có thể phát sinh:

1. Chặn IP: Google sử dụng các biện pháp chống thu thập dữ liệu như chặn IP để ngăn chặn các yêu cầu tự động quá mức. Trình thu thập dữ liệu có thể dễ dàng bị chặn sau một vài yêu cầu.
2. Thử thách CAPTCHA: Google thường đưa ra các thử thách CAPTCHA, đặc biệt là khi có quá nhiều yêu cầu được thực hiện trong một thời gian ngắn. Điều này khiến việc trích xuất dữ liệu mà không cần sự can thiệp của con người trở nên khó khăn.
3. Cấu trúc trang web động: Google Flights thường thay đổi bố cục trang và cấu trúc HTML, điều này có thể khiến các tập lệnh thu thập dữ liệu bị hỏng, yêu cầu cập nhật và bảo trì liên tục.
4. Hạn chế tốc độ: Google hạn chế số lượng yêu cầu bạn có thể thực hiện trong một khung thời gian ngắn. Điều này hạn chế lượng dữ liệu bạn có thể thu thập trong một phiên.

Bằng cách hiểu những thách thức này, sử dụng các công cụ tiên tiến như Scrapeless, tự động luân chuyển IP, bộ giải CAPTCHA và trích xuất dữ liệu từ các trang động, bạn có thể thu thập dữ liệu Google Flights một cách hiệu quả mà không gặp phải những vấn đề này.

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

Thu thập dữ liệu Google Flights bằng Python là một cách hiệu quả để thu thập thông tin du lịch có giá trị như giá vé máy bay, lịch trình và tình trạng sẵn có để phân tích hoặc so sánh. Trong phần này, chúng tôi sẽ hướng dẫn bạn từng bước cần thiết để thu thập dữ liệu Google Flights, từ thiết lập môi trường đến triển khai tập lệnh thu thập dữ liệu để bạn có thể tự động hóa quá trình trích xuất và thu thập dữ liệu bạn cần trong khi vẫn tuân thủ các nguyên tắc đạo đức và ràng buộc pháp lý.

Đầu tiên, chúng ta cần xây dựng một môi trường thu thập dữ liệu và chuẩn bị các công cụ sau:

  1. Python: https://www.python.org/downloads/ Đây là phần mềm cốt lõi để 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, nhưng nên tránh tải xuống phiên bản mới nhất. Bạn có thể tải xuống 1-2 phiên bản trước phiên bản mới nhất.

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

    PyCharm Community Edition
  3. pip: Bạn có thể sử dụng Python Package Index để cài đặt các thư viện cần thiết để chạy chương trình chỉ bằng một lệnh.
    pip

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 thiết bị đầu cuối. Vì Python 3.4 trở lên đã bao gồm nó theo mặc định, nên bạn không cần phải cài đặt thủ công.

Qua các bước trên, môi trường để thu thập dữ liệu Google Flights đã được thiết lập. Tiếp theo, bạn có thể sử dụng PyCharm đã tải xuống kết hợp với scraperless để thu thập dữ liệu Google Flights.

Bước 1: Khởi chạy PyCharm và chọn File > New Project... trong thanh menu.

Khởi chạy PyCharm và chọn File

Bước 2: Sau đó, trong cửa sổ bật lên, chọn Pure Python từ menu bên trái, và sau đó thiết lập dự án của bạn như hình dưới đây:

Lưu ý: Trong hộp màu đỏ trong hình dưới đây, hãy chọn đường dẫn cài đặt Python mà bạn đã tải xuống ở bước đầu tiên của cấu hình môi trường

chọn Pure Python từ menu bên trái

Bước 3: Bạn có thể tạo một dự án có tên python-scraper, chọn tùy chọn "Tạo tập lệnh chào mừng main.py" trong thư mục, và sau đó nhấp vào nút "Tạo". Sau một lúc PyCharm thiết lập dự án của bạn, bạn sẽ thấy như sau:

chọn tùy chọn "Tạo tập lệnh chào mừng main.py"

Bước 4: Sau đó, nhấp chuột phải để tạo một tệp Python mới.
tạo một tệp Python mới

Bước 5: Để xác minh rằng mọi thứ đều hoạt động bình thường, hãy mở tab Terminal ở cuối màn hình và nhập: python main.py. Sau khi khởi chạy lệnh này, bạn sẽ nhận được: Xin chào, PyCharm.

Bây giờ bạn có thể trực tiếp sao chép mã vào PyCharm bằng scraperless và chạy nó, để chúng ta có thể nhận được dữ liệu định dạng JSON của Google Flights.
nhận dữ liệu định dạng JSON của Google Flights

Dưới đây là một ví dụ về mã kết quả đầu ra:

{ Copy
  "best_flights": [
    {
      "flights": [
        {
          "departure_airport": {
            "name": "Paris Orly Airport",
            "id": "ORY",
            "time": "2025-01-14 9:10"
          },
          "arrival_airport": {
            "name": "Josep Tarradellas Barcelona-El Prat Airport",
            "id": "BCN",
            "time": "2025-01-14 10:50"
          },
          "duration": 100,
          "airplane": "Airbus A321",
          "airline": "Vueling",
          "airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/VY.png",
          "travel_class": "Economy",
          "flight_number": "VY 8001",
          "extensions": [
            "Below average legroom (29 in)",
            "In-seat USB outlet",
            "Emissions estimate: 93 kg CO2e"
          ],
          "ticket_also_sold_by": null,
          "legroom": "29 in",
          "overnight": false,
          "often_delayed_by_over_30_min": false
        }
      ],
      "layovers": null,
      "total_duration": 100,
      "carbon_emissions": {
        "this_flight": 93000,
        "typical_for_this_route": 86000,
        "difference_percent": 8
      },
      "price": 94,
      "type": "One-Way",
      "airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/VY.png",
      "extensions": [
        "Checked baggage for a fee",
        "Fare non-refundable, taxes may be refundable",
        "Ticket changes for a fee"
      ],
      "booking_token": "WyJDalJJZHpkT1dYVXRZWE5DVTJ0QlNFSnhPVkZDUnkwdExTMHRMUzB0TFhaMGRtVXhOMEZCUVVGQlIyVkZaVEYzVG5ocVdESkJFZ1pXV1Rnd01ERWFDZ2puU0JBQ0dnTlZVMFE0SEhEblNBPT0iLFtbIk9SWSIsIjIwMjUtMDEtMTQiLCJCQ04iLG51bGwsIlZZIiwiODAwMSJdXV0="
    },
    ...
  ],
  "other_flights": [
    {
      "flights": [
        {
          "departure_airport": {
            "name": "Paris Orly Airport",
            "id": "ORY",
            "time": "2025-01-14 6:30"
          },
          "arrival_airport": {
            "name": "Josep Tarradellas Barcelona-El Prat Airport",
            "id": "BCN",
            "time": "2025-01-14 8:10"
          },
          "duration": 100,
          "airplane": "Airbus A320",
          "airline": "Vueling",
          "airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/VY.png",
          "travel_class": "Economy",
          "flight_number": "VY 8005",
          "extensions": [
            "Below average legroom (29 in)",
            "In-seat USB outlet",
            "Emissions estimate: 91 kg CO2e"
          ],
          "ticket_also_sold_by": null,
          "legroom": "29 in",
          "overnight": false,
          "often_delayed_by_over_30_min": false
        }
      ],
      "layovers": null,
      "total_duration": 100,
      "carbon_emissions": {
        "this_flight": 92000,
        "typical_for_this_route": 86000,
        "difference_percent": 7
      },
      "price": 94,
      "type": "One-Way",
      "airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/VY.png",
      "extensions": [
        "Checked baggage for a fee",
        "Fare non-refundable, taxes may be refundable",
        "Ticket changes for a fee"
      ],
      "booking_token": "WyJDalJJZHpkT1dYVXRZWE5DVTJ0QlNFSnhPVkZDUnkwdExTMHRMUzB0TFhaMGRtVXhOMEZCUVVGQlIyVkZaVEYzVG5ocVdESkJFZ1pXV1Rnd01EVWFDZ2puU0JBQ0dnTlZVMFE0SEhEblNBPT0iLFtbIk9SWSIsIjIwMjUtMDEtMTQiLCJCQ04iLG51bGwsIlZZIiwiODAwNSJdXV0="
    },
    ...
  ],
  "price_insights": {
    "lowest_price": 94,
    "price_level": "high",
    "typical_price_range": [
      30,
      65
    ],
    "price_history": [
      [
        1731452400,
        40
      ],
      [
        1731538800,
        36
      ],
      ...
    ]
  },
  "airports": [
    {
      "departure": [
        {
          "airport": {
            "id": "ORY",
            "name": "Paris Orly Airport"
          },
          "city": "Paris",
          "country": "France",
          "country_ode": "FR",
          "image": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQGx8ii2KbSDdbdzfKye5oDN2bwBA6audqI7XUEf2iMRZezpn_ZbQe1ZIuvUSH-8XOMe958umDwSsAF1w",
          "thumbnail": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSyQJ-woNs0iO22mPSkmRUM5gcsTbbYeypQ6BBTeFxXr90mqTxZl57Fdq2CDuLn4w7cKZ8TT9_zZhOpF57rIpA7yWKQnqKvkKIf9Y-qJDo"
        }
      ],
      "arrival": [
        {
          "airport": {
            "id": "BCN",
            "name": "Josep Tarradellas Barcelona-El Prat Airport"
          },
          "city": "Barcelona",
          "country": "Spain",
          "country_ode": "ES",
          "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQOk3xypjQxrqfZPlTUH5lubWcGBzOkdXv7IVkOL--w1FYohepC2Y1hN69JZMcmQsAOt2hIy7EWP0SfXA",
          "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSm8RLrNH5mwpZ7VV_y8imJgifZndKGVUDYaU5-3_hF41Qrpet1SbU1az4wU48pwjNcbuAC9cYwCNqDCxMF1MgcMCvzO0P__9pb0Q9JBGM"
        }
      ]
    }
  ]
}

Qua các bước trên, bạn có thể thu thập các thông tin sau:

  • Thu thập Tên công ty Google Flights:
language Copy
"name": "Paris Orly Airport",
  • Thu thập Thời gian bay Google Flights:
language Copy
"price": 94,
  • Thu thập Ngày khởi hành và ngày đến Google Flights:
language Copy
  "departure_airport": {
            "name": "Paris Orly Airport",
            "id": "ORY",
            "time": "2025-01-14 9:10"
          },
          "arrival_airport": {
            "name": "Josep Tarradellas Barcelona-El Prat Airport",
            "id": "BCN",
            "time": "2025-01-14 10:50"
          },
  • Thu thập Khí thải CO2 của Google Flights:
language Copy
 "carbon_emissions": {
        "this_flight": 92000,
        "typical_for_this_route": 86000,
        "difference_percent": 7
      },

Thu thập dữ liệu Google Flights bằng Scrapeless

Scrapeless cung cấp giải pháp đáng tin cậy để xử lý nội dung động trên Google Flights và đảm bảo việc trích xuất dữ liệu liền mạch ở quy mô lớn. Bằng cách tận dụng API thu thập dữ liệu Google Flights của Scrapeless, bạn có thể vượt qua những thách thức như chặn IP, thử thách CAPTCHA và các biện pháp chống thu thập dữ liệu do Google Flights thực hiện.

Scrapeless cung cấp một thư viện Python có thể được tích hợp liền mạch vào quy trình làm việc thu thập dữ liệu của bạn. Bạn có thể dễ dàng thay thế các yêu cầu HTTP truyền thống bằng các cuộc gọi API thu thập dữ liệu Google Flights của Scrapeless để thu thập các trang web.

Đăng nhập vào Scrapeless ngay bây giờ và bắt đầu dùng thử miễn phí! Chỉ với một vài bước đơn giản, bạn có thể dễ dàng thu thập dữ liệu Google Flights và nhận thông tin chuyến bay theo thời gian thực. Không cần cài đặt phức tạp, bắt đầu nhanh chóng

Các tính năng chính:

  1. API thu thập dữ liệu Google Flights của Scrapeless có thể thu thập dữ liệu chuyến bay theo thời gian thực, bao gồm giá vé máy bay, giờ khởi hành, giờ đến, tình trạng chuyến bay, thông tin hãng hàng không, v.v.
  2. API thu thập dữ liệu Google Flights của Scrapeless hỗ trợ nhiều chức năng tùy chỉnh và người dùng có thể lọc dữ liệu chuyến bay theo nhu cầu của họ.
  3. Scrapeless tập trung vào việc cung cấp dịch vụ thu thập dữ liệu hợp pháp và tuân thủ để đảm bảo tuân thủ các luật và quy định có liên quan khi thu thập dữ liệu Google Flights và tránh vi phạm điều khoản sử dụng của Google.
  4. API Scrapeless đặc biệt phù hợp với các dự án cần thu thập dữ liệu tần suất cao và có thể xử lý nhiều yêu cầu và trả về kết quả trong thời gian ngắn. Phù hợp với các kịch bản kinh doanh cần thu thập dữ liệu nhanh chóng và quy mô lớn.

Ngoài ra, bạn có thể khám phá các hướng dẫn của chúng tôi về việc thu thập dữ liệu các dịch vụ Google khác như dữ liệu kết quả tìm kiếm Google, Xu hướng Google, và hơn thế nữa.

Cách tích hợp Google Flights Scraper vào hệ thống của bạn

Bạn có thể tham khảo các ví dụ API sau:

  • Khứ hồi
language Copy
import requests
import json

url = "https://api.scrapeless.com/api/v1/scraper/request"

payload = json.dumps({
   "actor": "scraper.google.flights",
   "input": {
      "departure_id": "ORY",
      "arrival_id": "BCN",
      "data_type": 1,
      "outbound_date": "2025-01-05",
      "return_date": "2025-01-11"
   }
})
headers = {
   'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

- Một chiều

language Copy
import http.client
import json

conn = http.client.HTTPSConnection("api.scrapeless.com")
payload = json.dumps({
   "actor": "scraper.google.flights",
   "input": {
      "departure_id": "ORY",
      "arrival_id": "BCN",
      "data_type": 2,
      "outbound_date": "2025-01-11"
   }
})
headers = {
   'Content-Type': 'application/json'
}
conn.request("POST", "/api/v1/scraper/request", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Nếu bạn cần thêm thông tin chi tiết hoặc cần tích hợp các công cụ API khác, bạn cũng có thể tham khảo tài liệu đầy đủ của chúng tôi.

Câu hỏi thường gặp về Google Flights

1. Thu thập dữ liệu Google Flights là gì?

Thu thập dữ liệu Google Flights là quá trình trích xuất thông tin, chẳng hạn như giá vé máy bay, tuyến đường, lịch trình và hãng hàng không, từ Google Flights bằng các công cụ hoặc API thu thập dữ liệu web. Dữ liệu này có thể được sử dụng để phân tích thị trường, theo dõi giá hoặc dự đoán xu hướng du lịch.

2. Thu thập dữ liệu Google Flights có hợp pháp không?

Thu thập dữ liệu công khai thường là hợp pháp. Điều này bao gồm thông tin được cung cấp trên Google Flights, miễn là dữ liệu đó không cần lệnh bắt giữ để truy cập. Tòa án tối cao đã làm rõ rằng việc truy cập thông tin công khai không vi phạm Đạo luật chống gian lận và lạm dụng máy tính (CFAA)

3. Làm thế nào để tôi nhận được bản dùng thử miễn phí Google Flights của Scrapeless?

Bạn có thể tham gia nhóm discord của Scrapeless, và sau khi tham gia, ai đó sẽ giúp bạn nhận được bản dùng thử miễn phí.

Kết luận

Qua phần giới thiệu của bài viết này, bạn đã học cách sử dụng Scrapeless để thu thập dữ liệu Google Flights. Scrapeless đơn giản hóa quá trình thu thập dữ liệu, cho phép người dùng không có kiến thức lập trình sâu sắc dễ dàng lấy và phân tích thông tin chuyến bay từ Google Flights. Với công cụ này, bạn có thể thu thập hiệu quả giá vé máy bay Google Flights, tình hình động lực hãng hàng không và xu hướng thị trường từ Google Flights để tối ưu hóa chiến lược kinh doanh và thúc đẩy tăng trưởng. Scrapeless cho phép bạn tập trung vào phân tích dữ liệu mà không phải lo lắng về các chi tiết kỹ thuật và giúp bạn dễ dàng đáp ứng nhu cầu thị trường thay đổi nhanh chóng.

Tại Scrapeless, 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 hiện hành và chính sách bảo mật của trang web. 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 pháp lý đố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 thu thập dữ liệu nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem lại 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