Bỏ để qua phần nội dung

Hướng dẫn đầy đủ để thu thập bài đăng trên Facebook

Phương tiện truyền thông xã hội chứa đựng một mỏ vàng dữ liệu công cộng có giá trị cho những ai biết cách khai thác nó. Hướng dẫn dứt khoát hơn 4000 từ này sẽ hướng dẫn bạn cách thu thập các bài đăng trên Facebook một cách hiệu quả bằng các công cụ và kỹ thuật thích hợp.

Tầm quan trọng ngày càng tăng của việc quét web

Quét web đề cập đến việc trích xuất dữ liệu tự động từ các trang web thông qua các tập lệnh và công cụ phần mềm. Theo Insider Intelligence, hơn 80% các tổ chức hiện sử dụng tính năng quét web dưới một số hình thức cho mục đích kinh doanh thông minh.

Khi lượng dữ liệu có giá trị được xuất bản trực tuyến tiếp tục tăng theo cấp số nhân, việc quét web đã trở nên quan trọng để khai thác dữ liệu này. Các nhà bán lẻ thu thập danh sách sản phẩm, các công ty tài chính thu thập bảng ghi cuộc gọi, các nhà tuyển dụng thu thập thông tin tuyển dụng và các ứng dụng cứ tiếp tục.

Theo Meticulous Research, ngành công nghiệp quét web được dự đoán sẽ tăng trưởng với tốc độ CAGR trên 20% để đạt 13.9 tỷ USD vào năm 2026. Rõ ràng, việc quét web đang trở nên cần thiết đối với hoạt động kinh doanh cạnh tranh.

Nhiều trang web cấm việc quét web trong Điều khoản dịch vụ (ToS) của họ. Facebook cũng không ngoại lệ. Điều này đặt ra câu hỏi xung quanh tính hợp pháp của việc quét web.

Tin tốt là tại Hoa Kỳ, nơi Facebook đặt trụ sở, một số phán quyết của tòa án đã khẳng định rằng dữ liệu trên các trang web có thể truy cập công khai là trò chơi công bằng để trích xuất và các lệnh cấm trong ToS không phải là hợp đồng có hiệu lực pháp lý.

Ví dụ: trong phán quyết năm 2020 của HiQ Labs so với LinkedIn, Tòa phúc thẩm khu vực 9 đã giữ nguyên quyền của HiQ trong việc xóa các trang LinkedIn công khai, nêu rõ:

“Chúng tôi kết luận rằng HiQ đã đặt ra một câu hỏi nghiêm túc về việc liệu các bên có ký kết một hợp đồng có hiệu lực cấm HiQ truy cập vào dữ liệu có sẵn công khai của LinkedIn hay không.”

Miễn là bạn truy cập dữ liệu thông qua các giao diện công cộng như một người dùng bình thường mà không vượt qua các rào cản kỹ thuật, việc quét web dường như là hợp pháp theo án lệ của Hoa Kỳ.

Điều đó nói rằng, đạo đức cũng quan trọng. Dưới đây là một số phương pháp hay nhất để làm theo:

  • Chỉ cạo dữ liệu công khai
  • Không làm gián đoạn giao thông thường xuyên
  • Tôn trọng các quy tắc của robots.txt
  • Sử dụng proxy và tỷ lệ giới hạn
  • Nguồn tín dụng
  • Xóa dữ liệu khi không còn cần thiết

Quan điểm của Facebook về việc quét web

Điều khoản dịch vụ của Facebook nêu rõ:

Bạn sẽ không thu thập nội dung hoặc thông tin của người dùng hay truy cập Facebook bằng các phương tiện tự động (chẳng hạn như bot thu thập, robot, trình thu thập dữ liệu hoặc trình thu thập thông tin) mà không có sự cho phép trước của chúng tôi.

Điều này ngụ ý rằng họ không khuyến khích việc cạo. Tuy nhiên, mối quan tâm chính của họ dường như xoay quanh:

  • Quét dữ liệu người dùng riêng tư
  • Tài khoản/bot giả mạo lạm dụng nền tảng
  • Phá hoại cơ sở hạ tầng của Facebook

Việc thu thập nội dung trang công khai theo cách không xâm lấn dường như không phải là vấn đề dựa trên tiền lệ công khai. Nhiều công cụ và dịch vụ của bên thứ ba đặc biệt cho phép thu thập thông tin trên Facebook.

Facebook để nó kết thúc mở bằng cách yêu cầu "sự cho phép trước" để quét bot. Nhưng ngày nay sự cho phép không được cấp phép một cách tích cực theo bất kỳ cách thức minh bạch và thiết thực nào.

Cách tiếp cận tốt nhất là cạo một cách có đạo đức và có trách nhiệm theo các phương pháp hay nhất đã nêu trước đó. Giả sử bạn sử dụng các trang và dữ liệu công khai, việc thu thập số lượng khiêm tốn sẽ không gây lo ngại. Nhưng không thể đưa ra những đảm bảo chắc chắn khi chính sách của nền tảng còn mơ hồ.

Bây giờ chúng ta hãy xem cách thực sự thu thập các bài đăng trên Facebook…

Quét Facebook bằng trình duyệt không đầu

Cách tiếp cận đơn giản nhất là điều khiển trực tiếp trình duyệt thông qua các tập lệnh. Các thư viện trình duyệt không đầu hiện đại như Puppeteer và Playwright cung cấp quyền truy cập API vào chức năng của trình duyệt.

Hãy xem qua một ví dụ bằng cách sử dụng Con rối – một trong những lựa chọn phổ biến nhất do sự cân bằng về sức mạnh và sự đơn giản.

Đầu tiên chúng ta cần cài đặt Puppeteer:

npm install puppeteer  

Sau đó chúng ta có thể viết một kịch bản như thế này:

// puppeteer-scraper.js

const puppeteer = require(‘puppeteer‘);

(async () => {

  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto(‘https://www.facebook.com/nasa/‘);

  // Wait for posts to load
  await page.waitForSelector(‘.userContentWrapper‘); 

  // Extract post data
  const posts = await page.$$eval(‘.userContentWrapper .permalinkPost‘, posts => {

    return posts.map(post => {

      return {

        text: post.querySelector(‘.userContent‘)?.textContent ?? ‘‘,  
        date: post.querySelector(‘.timestampContent‘)?.textContent ?? ‘‘,
        reactions: post.querySelector(‘.likeCount‘)?.textContent ?? ‘‘,
        comments: post.querySelector(‘.commentCount‘)?.textContent ?? ‘‘,
        shares: post.querySelector(‘.shareCount‘)?.textContent ?? ‘‘

      };

    });

  });

  console.log(posts);

  await browser.close();

})();

Đây là những gì đang xảy ra:

  1. Khởi chạy trình duyệt Chrome không đầu với Puppeteer.

  2. Mở trang Facebook của NASA.

  3. Đợi các bài viết đầu tiên được tải.

  4. Sử dụng page.$$eval để đánh giá tất cả các yếu tố phù hợp với .userContentWrapper .permalinkPost bộ chọn.

  5. Cung cấp chức năng gọi lại ánh xạ từng thành phần bài đăng tới dữ liệu chúng ta muốn – văn bản, ngày tháng, phản ứng, v.v.

  6. In mảng bài viết được trích xuất.

Khi chạy, tập lệnh này sẽ xuất ra một mảng đối tượng chứa dữ liệu văn bản, ngày tháng và mức độ tương tác cho mỗi bài đăng cóp nhặt.

Bây giờ chúng ta có thể dễ dàng lưu các bài đăng đã được thu thập dưới dạng JSON:

const fs = require(‘fs‘);

// ...scrape posts

fs.writeFileSync(‘nasa-posts.json‘, JSON.stringify(posts, null, 2)); 

Hoặc chúng ta có thể nối từng bài đăng thành một hàng trong tệp CSV. Khả năng là vô tận!

So sánh nghệ sĩ múa rối với nhà viết kịch

Người múa rối rất tuyệt, nhưng Nhà soạn kịch là một tùy chọn trình duyệt không đầu tuyệt vời khác với một số ưu điểm độc đáo:

  • Hỗ trợ Firefox và WebKit ngoài Chrome.
  • Thời gian tải trang nhanh hơn một chút.
  • Hỗ trợ tích hợp tốt hơn cho phân trang, iframe và cửa sổ bật lên.
  • Giao diện người dùng để xem trước dữ liệu cóp nhặt.
    - Cú pháp async/await mượt mà hơn.

Ví dụ: đây là kịch bản tương tự trong Playwright:

const { chromium } = require(‘playwright‘); 

(async () => {

  const browser = await chromium.launch();

  const context = await browser.newContext();

  const page = await context.newPage();

  await page.goto(‘https://www.facebook.com/nasa/‘);

  const posts = await page.$$eval(‘.userContentWrapper .permalinkPost‘, posts => {

    // Map elements to data  

  });

  await browser.close();

})();

Cách sử dụng của nhà viết kịch hầu như giống hệt nhau. Cả hai thư viện đều là những lựa chọn tuyệt vời tùy theo sở thích của bạn.

Bây giờ, hãy xem xét việc sử dụng proxy để thu thập dữ liệu hiệu quả hơn…

Quét qua proxy

Để quét Facebook một cách hiệu quả trên quy mô lớn, bạn nên sử dụng proxy để phân phối yêu cầu và tránh bị phát hiện.

Proxy dân cư hoạt động tốt nhất vì chúng cung cấp IP thực từ gia đình/thiết bị di động để có kết quả giống hệt với người dùng bình thường. Trung tâm dữ liệu proxy rẻ hơn nhưng có nhiều khả năng bị phát hiện và chặn hơn.

Dưới đây là cách định cấu hình Puppeteer để sử dụng proxy dân cư:

const puppeteer = require(‘puppeteer-extra‘);
const pluginStealth = require(‘puppeteer-extra-plugin-stealth‘);

// Enable stealth plugin  
puppeteer.use(pluginStealth());

(async () => {

  const browser = await puppeteer.launch({
    headless: true, 
    args: [
      ‘--proxy-server=http://USER:PASS@PROXY:PORT‘ 
    ]
  });

// ...rest of script

})();

Chúng tôi chỉ đơn giản là vượt qua --proxy-server tranh luận với thông tin đăng nhập của nhà cung cấp proxy của chúng tôi. Điều này định tuyến tất cả lưu lượng truy cập thông qua IP proxy.

Sản phẩm puppeteer-extra-plugin-stealth mô-đun này áp dụng nhiều kỹ thuật khác nhau để tránh bị phát hiện bot khi đi qua proxy.

Các dịch vụ proxy dân cư hàng đầu bao gồm:

  • Smartproxy – Gói từ $75/tháng cho 40 GB lưu lượng. API có sẵn.

  • GeoSurf – Các gói từ $50/tháng. Tích hợp liền mạch với Puppeteer.

  • Luminati – Các gói bắt đầu ở mức $500/tháng. Nhóm IP lớn.

  • Oxylabs – Các gói từ €100/tháng. API được cung cấp.

Proxy dân dụng bắt đầu ở mức 3-5 cent mỗi GB, đắt hơn nhiều so với proxy trung tâm dữ liệu nhưng cũng đáng để sử dụng.

Xoay vòng IP proxy thường xuyên để tối đa hóa kết quả và giảm thiểu khả năng bị phát hiện. Giảm bớt gánh nặng quản lý proxy này cho nhà cung cấp dịch vụ.

Quét Facebook bằng trình duyệt thực

Trong một số trường hợp, việc chạy tập lệnh thu thập dữ liệu 24/7 phía máy chủ có thể không lý tưởng hoặc không khả thi.

Quét từ trình duyệt thực tế trên máy tính của riêng bạn là một lựa chọn thay thế. Nó làm giảm độ phức tạp cho các máy cạo nhỏ.

Công cụ như Bạch tuộc, Phân tích cú phápNhập khẩu.io cung cấp tiện ích mở rộng trình duyệt để thu thập nội dung khi bạn duyệt Facebook một cách tự nhiên.

Ví dụ: đây là các bước để cạo bằng Octoparse:

  1. Cài đặt tiện ích mở rộng trình duyệt.

  2. Điều hướng đến trang đích.

  3. Nhấp vào biểu tượng tiện ích mở rộng.

  4. Chọn các yếu tố để cạo.

  5. Trích xuất dữ liệu.

Quét trình duyệt dễ thiết lập nhưng kém linh hoạt hơn so với các tập lệnh cung cấp toàn quyền kiểm soát theo chương trình. Hãy xem xét tất cả các lựa chọn dựa trên trường hợp sử dụng của bạn.

Quét Facebook bằng Công cụ và API

Ngoài các tập lệnh, nhiều công cụ được xây dựng nhằm mục đích thu thập thông tin trên Facebook:

API Scraper Lượt thích Dexi.io, ScrapeHeroSerpApi xử lý việc thu thập dữ liệu cho bạn để bạn có thể tập trung vào việc sử dụng dữ liệu. Ví dụ:

import dexi 

data = dexi.FacebookPage(
  page_urls=[‘https://www.facebook.com/nasa‘]
).get_posts()

print(data)

Tiện ích bổ sung của Google Trang tính Lượt thích Nhập Facebookmang xã hội cho phép bạn kéo dữ liệu Facebook trực tiếp vào Google Trang tính để phân tích ngay lập tức.

Sản phẩm API Facebook cung cấp quyền truy cập theo chương trình chính thức, nhưng rất hạn chế so với việc thu thập dữ liệu vì nó hạn chế số lượng dữ liệu bạn có thể trích xuất.

Tiện ích mở rộng trình duyệt DIY Lượt thích Máy cạo Facebook làm cho việc cạo có thể truy cập được mà không cần mã hóa.

Đánh giá các lựa chọn dựa trên ngân sách, chuyên môn kỹ thuật và trường hợp sử dụng của bạn.

Dữ liệu nào bạn thực sự có thể cạo từ Facebook?

Mặc dù chúng tôi tập trung vào bài đăng nhưng thực tế có nhiều loại dữ liệu có thể được lấy từ Facebook:

  • Siêu dữ liệu trang – Tên, danh mục, số lượng người theo dõi, v.v.

  • bài viết – Nội dung văn bản, ngày tháng, phản ứng, bình luận.

  • Nhận xét – Nội dung bình luận, tên người bình luận, ngày tháng, phản ứng.

  • Đánh giá – Review văn bản, hình ảnh, đánh giá, tên người đánh giá.

  • Sự Kiện – Tiêu đề, mô tả, địa điểm, lịch trình, thông tin người tham dự.

  • Du lịch Nhóm – Thông tin nhóm, danh sách thành viên, bài viết, bình luận.

  • Danh sách trên thị trường – Tiêu đề, mô tả, giá cả, hình ảnh, người bán.

  • quảng cáo – Quảng cáo sáng tạo, văn bản, hình ảnh, tiêu chí nhắm mục tiêu.

Tuy nhiên, chỉ tập trung vào những gì bạn thực sự cần. Không bao giờ thu thập dữ liệu cá nhân của người dùng – chỉ các trang và bài đăng công khai.

Quét Facebook một cách có trách nhiệm

Facebook cung cấp rất nhiều dữ liệu công cộng. Nhưng nó phải được thu hoạch một cách có trách nhiệm:

  • Tôn trọng robots.txt: Robots.txt của Facebook cho phép thu thập dữ liệu các trang và bài đăng. Nhưng hãy tuân theo mọi con đường bị chặn.

  • Giới hạn tần suất yêu cầu: Đừng tấn công các trang với hàng trăm yêu cầu mỗi giây. Hợp lý.

  • Sử dụng proxy: Xoay IP để phân phối tải. Proxy dân cư hoạt động tốt nhất.

  • Chỉ cạo dữ liệu công khai: Không bao giờ nhắm mục tiêu hồ sơ cá nhân hoặc thông tin cá nhân.

  • Nguồn tín dụng: Nếu xuất bản lại nội dung cóp nhặt, hãy ghi công phù hợp.

  • Xóa dữ liệu không cần thiết: Xóa dữ liệu bị loại bỏ không còn cần thiết.

  • Tuân theo đạo đức: Chỉ loại bỏ dữ liệu mà bạn có lợi ích hợp pháp trong việc sử dụng hoặc phân tích.

Việc thu thập dữ liệu không bao giờ được làm gián đoạn cơ sở hạ tầng của Facebook hoặc xâm phạm quyền riêng tư của người dùng. Chúng tôi chỉ đang trích xuất công khai dữ liệu mà Facebook đã tiết lộ.

Quét Facebook: Những bài học quan trọng

  • Quét web có thể trích xuất dữ liệu công khai có giá trị từ Facebook cho mục đích kinh doanh.
  • Tập trung vào việc thu thập các trang và bài đăng công khai chứ không phải hồ sơ cá nhân.
  • Tuân thủ các phương pháp hay nhất về cạo có trách nhiệm.
  • Sử dụng các công cụ như Puppeteer, Playwright, API cạp và hơn thế nữa.
  • Xoay proxy dân cư để tránh bị phát hiện.
  • Chỉ thu thập dữ liệu bạn có thể sử dụng hợp pháp.
  • Xóa dữ liệu bị loại bỏ khi không còn cần thiết.

Điều đó kết thúc hướng dẫn hơn 4000 từ của tôi để tìm kiếm các bài đăng trên Facebook một cách hiệu quả và có đạo đức. Tôi hy vọng bạn tìm thấy nó hữu ích! Vui lòng liên hệ nếu bạn có bất kỳ câu hỏi nào khác.

Tham gia vào cuộc đối thoại

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *