logo
empty

Làm thế nào để quét Instagram? 3 cách để tận dụng tối đa nỗ lực quét của bạn

2024/02/06 13:56:08Tác giả: AdsPowerĐộc giả: 364

Với hơn 1,3 tỷ người dùng, Instagram là kho dữ liệu quý giá để các doanh nghiệp sử dụng để nghiên cứu thị trường, tìm kiếm khách hàng tiềm năng và theo dõi hiệu suất. Nhưng việc thu thập dữ liệu Instagram để có được dữ liệu này là một phần khó khăn.

Quy trình này không đơn giản và có nhiều điều phức tạp do chính sách của Instagram hoặc sự mơ hồ về mặt kỹ thuật.

Hướng dẫn này trả lời cách loại bỏ Instagram bằng cách giới thiệu ba cách liên quan đến phương pháp mã thấp và nặng cũng như phương pháp không mã.

Việc quét Instagram có hợp pháp không?


Câu trả lời cho câu hỏi “Việc thu thập dữ liệu trên Instagram có hợp pháp không?” đồng thời là có và không, tùy thuộc vào loại dữ liệu bạn đang thu thập. Nếu bạn muốn tìm kiếm dữ liệu Công khai trên Instagram, câu trả lời là có.

Nhưng nếu bạn đang tìm kiếm dữ liệu riêng tư trên Instagram yêu cầu đăng nhập Instagram thì điều đó bị cấm rõ ràng và bạn có thể phải đối mặt với việc bị đình chỉ tài khoản và trong trường hợp xấu nhất là hành động pháp lý. Nhưng ngay cả đối với dữ liệu Công khai, bạn phải đảm bảo phương pháp thu thập dữ liệu hợp pháp.

Để thu thập dữ liệu pháp lý trên Instagram, bạn có thể sử dụng các API do Instagram cung cấp. Chúng bao gồm API đồ thị Instagram và API hiển thị cơ bản của Instagram.

API Đồ thị cho phép bạn quản lý và trích xuất dữ liệu về tài khoản doanh nghiệp và người sáng tạo. Trong khi API hiển thị cơ bản cung cấp cho bạn quyền truy cập chỉ đọc vào thông tin người dùng cơ bản. Cả hai API này đều tuân thủ các chính sách của Instagram về việc thu thập dữ liệu nên việc thu thập dữ liệu trên Instagram bằng cách sử dụng chúng là hoàn toàn hợp pháp.


Tuy nhiên, nếu bạn sử dụng các API không công khai hoặc các phương tiện bất hợp pháp để truy cập vào nền tảng mà không có sự cho phép trước và thường ngụy trang công cụ thu thập dữ liệu để xuất hiện như một người dùng bình thường thì điều đó sẽ thuộc phạm vi thu thập dữ liệu trái phép và vi phạm Điều khoản dịch vụ của Instagram.


Vì vậy, trước khi bạn bắt đầu quét Instagram, hãy lùi lại và tự suy nghĩ “Instagram có cho phép quét không” và đảm bảo rằng bạn thực hiện cẩn thận khi sử dụng nó.

Dữ liệu Instagram nào bạn có thể dễ dàng quét?

Trước khi hướng dẫn bạn cách lấy dữ liệu khỏi Instagram, trước tiên hãy khám phá xem dữ liệu nào có thể lấy được một cách hợp pháp từ nền tảng này. Quét web hợp pháp trên Instagram có thể giúp bạn truy cập vào ba loại dữ liệu sau:

  • Hashtag: Bạn có thể nhận được ảnh và video hoạt động hiệu quả nhất hoặc các ảnh và video gần đây được hashtag cụ thể trong chú thích của chúng.
  • Hồ sơ: Bạn có thể lấy dữ liệu hồ sơ như bài đăng, số lượng phương tiện và số người theo dõi/số lượt theo dõi.
  • Bài đăng: Bạn có thể nhận các số liệu như số lượng bình luận, số lượt thích, ID hồ sơ, ngày xuất bản và URL.

3 cách để quét Instagram

Dưới đây là ba cách để quét Instagram. Chọn một trong những phù hợp với nhu cầu và nguồn lực của bạn:

Quét Instagram bằng API Instagram

Dưới đây là hướng dẫn từng bước về cách thu thập dữ liệu trên Instagram nhưng trước tiên hãy đảm bảo bạn đáp ứng các yêu cầu sau:

  • Tài khoản doanh nghiệp/người sáng tạo trên Instagram
  • Trang Facebook được liên kết với Tài khoản người sáng tạo/doanh nghiệp trên Instagram
  • Tài khoản Nhà phát triển Facebook để sử dụng API đồ thị Instagram
  • Thiết lập Ứng dụng Facebook đã đăng ký với cài đặt tối thiểu

Khi bạn đã hoàn tất các điều kiện tiên quyết này, các giai đoạn tiếp theo sẽ trông như thế này.

Thêm chức năng đăng nhập Facebook:

Điều hướng đến bảng điều khiển Ứng dụng Facebook của bạn và nhấp vào nút “Sản phẩm +” từ bảng điều khiển ở bên trái cửa sổ. Từ đó thêm Sản phẩm đăng nhập Facebook. Hiện tại, không thay đổi cài đặt cho sản phẩm này và để chúng ở chế độ mặc định.


Tiếp theo, bạn sẽ phải triển khai Đăng nhập Facebook trong ứng dụng của mình với sự trợ giúp của Tài liệu đăng nhập Facebook và đảm bảo quy trình đăng nhập của bạn yêu cầu hai quyền cơ bản sau:


[Nguồn hình ảnh]


Tạo mã thông báo truy cập:

Việc thực hiện các hành động từ bảng điều khiển ứng dụng trên tài khoản Instagram yêu cầu phải có Mã truy cập của người dùng. Ở bên phải trang tổng quan, hãy mở menu thả xuống Người dùng hoặc Trang và chọn Nhận mã thông báo truy cập của người dùng.


Một cửa sổ bật lên sẽ xuất hiện thông báo rằng một ứng dụng (trong trường hợp này là ứng dụng của bạn) đang yêu cầu các quyền nêu trên. Chỉ cần nhấn nút Tiếp tục hoặc OK và bạn sẽ nhận được Mã thông báo truy cập của người dùng trong trường Mã thông báo truy cập trong trang tổng quan của mình.


[Nguồn hình ảnh]


Bây giờ, bằng cách sử dụng Mã thông báo truy cập của người dùng, chúng tôi sẽ thực hiện một số truy vấn cơ bản trên Tài khoản Instagram.

1. Lấy ID trang Facebook:

Đầu tiên, chúng ta cần ID của Trang Facebook được kết nối với tài khoản Instagram Business. Để thực hiện việc này, hãy chạy truy vấn Nhận sau đây trong bảng thông tin.


"https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"


Điều này sẽ trả về tên và ID của Trang Facebook thuộc về người dùng Facebook. Đầu ra sẽ trông như thế này.


{
"data": [
{
"access_token": "EAAJjmJ...",
"category": "App Page",
"category_list": [
{
"id": "2301",
"name": "App Page"
}
],
"name": "Metricsaurus",
"id": "134895793791914",
"tasks": [
"ANALYZE",
"ADVERTISE",
"MODERATE",
"CREATE_CONTENT",
"MANAGE"
]
}
]
}


Sao chép ID của trang được kết nối với Tài khoản Instagram Business.

2. Nhận ID tài khoản doanh nghiệp Instagram:

Sử dụng ID Facebook, nhập tập lệnh sau vào thanh lệnh và nhấn gửi.


134895793791914? trường =instagram_business_account


Bạn sẽ nhận được kết quả đầu ra sau đây.


{
"instagram_business_account": {
"id": "17841405822304914" // Connected IG User ID
},
"id": "134895793791914" // Facebook Page ID
}


3. Nhận đối tượng truyền thông của tài khoản Instagram:

Sao chép ID Instagram từ đầu ra và thực thi tập lệnh sau để lấy ID của tất cả các câu chuyện hiện được đăng trên Tài khoản Instagram Business.


17841405822304914/stories


Đầu ra sẽ chứa ID cho mỗi câu chuyện.


{
"dữ liệu": [
{
"id": "17918195224117851"
},
{
"id": " 17895695668004550"
},
{
"id": "17899305451014820"
},
{
"id": "17896450804038745"
},
{
"id" : "17881042411086627"
},
{
"id": "17869102915168123"
}
]
}


Đây chỉ là một ví dụ. Bằng cách sử dụng API đồ thị Instagram, bạn cũng có thể lấy thông tin khác như siêu dữ liệu của người dùng Instagram và thực hiện nghiên cứu hashtag.


Bây giờ hãy chuyển sang một cách khác để lấy dữ liệu từ Instagram.

Quét Instagram bằng cách sử dụng Cloud Scrapper không có mã

Đối với những người không có nền tảng về mã hóa, phương pháp trên có thể khó hiểu chứ đừng nói đến việc thực hiện. Nhưng đừng lo lắng. Có Instagram Scrapers hoàn thành công việc mà không yêu cầu bất kỳ mã nào.


Đây là cách quét Instagram bằng một trong những công cụ có tên Apify.


Đi tới trang Apify Instagram Scraper:

Mở trang Apify Instagram Scraper và nhấp vào nút Dùng thử miễn phí.



Đăng ký Apify bằng địa chỉ email hoặc tài khoản Google hoặc Github của bạn. Thao tác này sẽ đưa bạn đến Bảng điều khiển Apify nơi diễn ra hoạt động thu thập thông tin thực sự trên Instagram.

Thu thập các URL Instagram:

Sử dụng ứng dụng hoặc trang web Instagram, thu thập tất cả URL hồ sơ của tài khoản Instagram mà bạn muốn thu thập. Trên bảng điều khiển Apify, lần lượt dán tất cả các URL này vào các trường nhập nhất định. Để nhập tất cả chúng cùng một lúc, bạn có thể nhấp vào nút Chỉnh sửa hàng loạt.



Apify cung cấp ba tùy chọn thu thập dữ liệu cho các URL được cung cấp, bạn có thể thu thập các bài đăng và nhận xét hoặc nhận các chi tiết khác nhau từ hồ sơ.

Nhấp vào Lưu và bắt đầu:

Giữ nguyên các cài đặt còn lại và nhấn Lưu và Bắt đầu để chạy trình quét. Kết quả sẽ ở dạng bảng chứa các hàng bằng số lượng URL hồ sơ bạn đã cung cấp với một số cột chứa siêu dữ liệu hồ sơ như tiểu sử, số người theo dõi, số bài đăng, số lượng cuộn, ID tài khoản và trạng thái xác minh để đặt tên cho một số .




Lưu trữ kết quả:

Bây giờ hãy nhấn nút Xuất kết quả và chọn định dạng tệp bạn muốn từ cửa sổ bật lên. Bạn cũng có thể làm sạch dữ liệu bằng cách chọn hoặc bỏ qua các trường bạn không yêu cầu. Sau đó, bạn có thể tải xuống kết quả, xem chúng trong tab mới hoặc chia sẻ chúng qua liên kết.




Quét Instagram bằng ngôn ngữ lập trình

Xây dựng công cụ quét Instagram của riêng bạn có thể là giải pháp hiệu quả nhất nếu yêu cầu của bạn không điển hình và bạn có kiến thức lập trình tốt hoặc có một nhà phát triển trong nhóm của mình. Bạn có thể làm điều đó bằng cách sử dụng bất kỳ ngôn ngữ lập trình nào kết hợp với khung quét web.


Hướng dẫn này trình bày cách thu thập dữ liệu Instagram bằng Python và Selenium, một khung tự động hóa trình duyệt.

Nhập các thư viện thiết yếu:

Để bắt đầu, hãy nhập các thư viện cơ bản bao gồm Selenium, trình quản trị web của nó và Selenium-Stealth để tránh bị phát hiện.


from selenium import webdriver
from selenium.webdriver.common.by import By
from pprint import pprint
import json
from selenium_stealth import stealth


Thư viện pprint sẽ giúp chúng ta in đầu ra một cách gọn gàng để tăng khả năng đọc.

Thu thập tên người dùng Instagram:

Tạo danh sách và thêm tên người dùng của hồ sơ Instagram mà bạn đang nhắm mục tiêu.


usernames = ["natureismetal", "miteuniversity", "samstailor", "therock"]
proxy = "server:port"
output = {}


Biến đầu ra là một từ điển mà chúng ta sẽ sử dụng để lưu trữ kết quả.

Xác định chức năng chính:

Hàm chính sẽ duyệt qua danh sách tên người dùng cùng một lúc và gọi hàm thu thập dữ liệu trên mỗi tên người dùng.


def main():
for username in usernames:
scrape(username)


Xác định chức năng quản lý cài đặt trình duyệt:

Chức năng này sẽ điều chỉnh cài đặt trình duyệt trước mỗi yêu cầu thu thập dữ liệu để thêm tính năng ẩn danh nhằm tránh bị Instagram phát hiện. Những thay đổi này bao gồm luân phiên proxy, định cấu hình cài đặt Selenium-Stealth và tạo tác nhân người dùng nhân tạo.


def prepare_browser():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
chrome_options.add_argument("start-maximized")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options= chrome_options)
stealth(driver,
user_agent= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36',
languages= ["en-US", "en"],
vendor= "Google Inc.",
platform= "Win32",
webgl_vendor= "Intel Inc.",
renderer= "Intel Iris OpenGL Engine",
fix_hairline= False,
run_on_insecure_origins= False,
)
return driver


Xác định hàm cho Scraping:

Hàm Scrape() được gọi trong hàm main lấy một tên người dùng Instagram duy nhất làm đối số và tạo điểm cuối hồ sơ mà chúng ta sẽ sử dụng để gửi yêu cầu bằng trình duyệt Chrome được thực hiện thông qua hàm prepare_browser().


Chúng tôi cũng sẽ kiểm tra trạng thái của yêu cầu. Nếu yêu cầu của bạn được chuyển hướng đến trang đăng nhập, điều này có nghĩa là yêu cầu đó không thành công. Trong khi đó, nếu không có chuỗi đăng nhập, yêu cầu đã thành công và kết quả sẽ được phân tích cú pháp dưới dạng JSON và gửi đến hàm pars_data() cùng với tên người dùng.


def scrape(username):


url = f'https://instagram.com/{username}/?__a=1&__d=dis'
chrome = prepare_browser()
chrome.get(url)
print (f"Attempting: {chrome.current_url}")


if "login" in chrome.current_url:
print ("Failed/ redir to login")
chrome.quit()


else:
print ("Success")
resp_body = chrome.find_element(By.TAG_NAME, "body").text
data_json = json.loads(resp_body)
user_data = data_json['graphql']['user']
parse_data(username, user_data)
chrome.quit()


Xác định hàm parse_data():

Hàm này phân tích dữ liệu JSON trong đối số user_data để lấy trường dữ liệu mong muốn. Trong ví dụ này, chúng tôi đang tìm kiếm tên đầy đủ, danh mục tài khoản, số người theo dõi và chú thích bài đăng của người dùng.


def parse_data(username, user_data):
captions = []


if len(user_data['edge_owner_to_timeline_media']['edges']) > 0:
for node in user_data['edge_owner_to_timeline_media']['edges']:
if len(node['node']['edge_media_to_caption']['edges']) > 0:
If node['node']['edge_media_to_caption']['edges'][0]['node']['text']:
captions.append(

node['node']['edge_media_to_caption']['edges'][0]['node']['text'])

output[username] = {
'name': user_data['full_name'],
'category': user_data['category_name'],
'followers': user_data['edge_followed_by']['count'],
'posts': captions,

}


Viết mã trình điều khiển:

Mã trình điều khiển bắt đầu quá trình thu thập dữ liệu, trích xuất dữ liệu vào biến đầu ra và gọi hàm pprint() trên đó để hiển thị dữ liệu theo cách đẹp mắt.


if __name__ == '__main__' :
main()
pprint(output)


Bỏ qua bị phát hiện với trình duyệt chống phát hiện AdsPower

Instagram rất nghiêm ngặt trong việc thu thập dữ liệu và cấp quyền truy cập rất hạn chế vào dữ liệu công khai trên nền tảng của nó. Điều này bao gồm thông tin cấp cơ bản như ID hồ sơ, số lượng người theo dõi, số lượt thích và số lượng bình luận. Tìm hiểu sâu hơn yêu cầu đăng nhập đi ngược lại chính sách của Instagram và có thể dẫn đến đình chỉ tài khoản.


Đây là lúc AdsPower phát huy tác dụng bằng cách giúp bạn duy trì mức độ ẩn danh khi thu thập dữ liệu từ Instagram có thể có nguy cơ vi phạm chính sách của Instagram. AdsPower sử dụng các kỹ thuật chống phát hiện như xoay IP và giới hạn tốc độ để trốn tránh các biện pháp chống quét.


Vì vậy, lần tới khi bạn quét Instagram bằng công cụ không có mã hoặc API Instagram không chính thức, hãy đảm bảo sử dụng trình duyệt chống phát hiện AdsPower để bỏ qua việc phát hiện.

Phần kết luận

Instagram chỉ cho phép thu thập dữ liệu có sẵn công khai trên nền tảng mà nó cung cấp hai API. Tuy nhiên, các API này cung cấp mức độ thu thập dữ liệu rất cơ bản mà không cho phép bạn thu thập dữ liệu thực sự có liên quan từ Instagram.


Điều này để lại cho chúng tôi các công cụ thu thập dữ liệu web của bên thứ ba hoặc tạo công cụ thu thập dữ liệu của riêng bạn bằng ngôn ngữ lập trình. Tuy nhiên, việc quét Instagram bằng các phương pháp không chính thức này có khả năng bị phát hiện, vì vậy hãy đảm bảo bạn sử dụng trình duyệt chống phát hiện AdsPower để tăng cường bảo vệ.

Bình luận
0/50
0/300
Nhận xét phổ biến
no_comment

Không có gì ở đây ... Hãy để lại bình luận đầu tiên!