Cách tìm nạp dữ liệu từ Instagram bằng Python
Instagram là một trong những trang mạng xã hội phổ biến nhất với hàng tỷ người dùng. Tất cả mọi người từ sinh viên đến người nổi tiếng đều có tài khoản Instagram. Dữ liệu công khai từ Instagram có thể có giá trị to lớn đối với các doanh nghiệp, nhà tiếp thị và cá nhân. Bất kỳ ai cũng có thể sử dụng dữ liệu này để thực hiện phân tích dữ liệu, tiếp thị mục tiêu và tạo thông tin chi tiết.
Bạn có thể sử dụng Python để xây dựng một công cụ tự động trích xuất dữ liệu Instagram.
Mục Lục
Cài đặt Thư viện Bắt buộc
Instaloader là một thư viện Python mà bạn có thể sử dụng để trích xuất dữ liệu có sẵn công khai từ Instagram. Bạn có thể truy cập dữ liệu như hình ảnh, video, tên người dùng, không. trong tổng số bài đăng, số lượng người theo dõi, số lượng người theo dõi, tiểu sử, v.v. bằng cách sử dụng Instaloader. Lưu ý rằng Instaloader không được Instagram liên kết, ủy quyền, duy trì hoặc xác nhận theo bất kỳ cách nào.
Để cài đặt instaloader qua pip, hãy chạy lệnh sau:
pip install instaloader
Bạn phải cài đặt pip trên hệ thống của mình để cài đặt các thư viện Python bên ngoài.
Tiếp theo, bạn cần cài đặt thư viện Pandas Python. Pandas là một thư viện Python chủ yếu được sử dụng để thực hiện thao tác dữ liệu và phân tích dữ liệu. Chạy lệnh sau để cài đặt nó:
pip install pandas
Bây giờ, bạn đã sẵn sàng để bắt đầu thiết lập mã và tìm nạp dữ liệu từ Instagram.
Thiết lập mã của bạn
Để thiết lập công cụ tìm nạp dữ liệu Instagram, bạn cần nhập thư viện Python Instaloader và tạo một phiên bản của lớp Instaloader. Sau đó, bạn cần cung cấp trình xử lý Instagram của hồ sơ mà bạn muốn trích xuất dữ liệu.
Mã Python của Instagram Extractor có sẵn trong kho lưu trữ GitHub và miễn phí cho bạn sử dụng theo Giấy phép MIT.
import instaloader
bot = instaloader.Instaloader()
profile = instaloader.Profile.from_username(bot.context, 'cristiano')
print(profile)
Đây là bước đầu tiên tốt để kiểm tra hoạt động cơ bản. Bạn sẽ thấy một số dữ liệu có ý nghĩa và không có lỗi:
Bạn có thể trích xuất dữ liệu có giá trị công khai như tên người dùng, không. trong tổng số bài đăng, số lượng người theo dõi, số lượng người theo dõi, tiểu sử, ID người dùng và URL bên ngoài bằng cách sử dụng Instaloader chỉ với một vài dòng mã. Bạn chỉ cần cung cấp trình xử lý Instagram của hồ sơ.
import instaloader
import pandas as pd
bot = instaloader.Instaloader()
profile = instaloader.Profile.from_username(bot.context, 'leomessi')
print("Username: ", profile.username)
print("User ID: ", profile.userid)
print("Number of Posts: ", profile.mediacount)
print("Followers Count: ", profile.followers)
print("Following Count: ", profile.followees)
print("Bio: ", profile.biography)
print("External URL: ", profile.external_url)
Bạn sẽ thấy nhiều thông tin hồ sơ từ tay cầm mà bạn chỉ định:
Bạn có thể trích xuất địa chỉ email từ tiểu sử Insta của bất kỳ hồ sơ nào bằng cách sử dụng cụm từ thông dụng. Bạn cần nhập Python’s lại thư viện và chuyển biểu thức chính quy để xác thực email dưới dạng tham số cho re.findall () phương pháp:
import instaloader
import re
bot = instaloader.Instaloader()
profile = instaloader.Profile.from_username(bot.context, "wealth")
print("Username: ", profile.username)
print("Bio: ", profile.biography)
emails = re.findall(r"b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}b", profile.biography)
print("Emails extracted from the bio:")
print(emails)
Tập lệnh sẽ in bất kỳ thứ gì mà nó nhận ra là địa chỉ email trong tiểu sử:
Khi bạn tìm kiếm bất kỳ thứ gì trên Instagram, bạn sẽ nhận được một số kết quả bao gồm tên người dùng và thẻ bắt đầu bằng #. Bạn có thể trích xuất các kết quả tìm kiếm hàng đầu bằng cách sử dụng get_profiles () và get_hashtags () các phương pháp. Bạn chỉ cần cung cấp truy vấn tìm kiếm trong instaloader.TopSearchResults () phương pháp. Hơn nữa, bạn có thể lặp lại và in / lưu trữ các kết quả riêng lẻ.
import instaloader
bot = instaloader.Instaloader()
search_results = instaloader.TopSearchResults(bot.context, 'music')
for username in search_results.get_profiles():
print(username)
for hashtag in search_results.get_hashtags():
print(hashtag)
Đầu ra sẽ bao gồm mọi tên người dùng và thẻ bắt đầu bằng # phù hợp:
Bạn có thể trích xuất những người theo dõi tài khoản và những người theo dõi chính tài khoản đó bằng cách sử dụng Instaloader. Bạn sẽ cần cung cấp tên người dùng và mật khẩu Instagram để truy xuất dữ liệu này.
Không bao giờ sử dụng tài khoản cá nhân của bạn để trích xuất dữ liệu từ Instagram vì nó có thể khiến tài khoản của bạn bị cấm tạm thời hoặc vĩnh viễn.
Sau khi tạo một phiên bản của lớp Instaloader, bạn cần cung cấp tên người dùng và mật khẩu của mình. Điều này để bot có thể đăng nhập vào Instagram bằng tài khoản của bạn và lấy dữ liệu người theo dõi và theo dõi.
Tiếp theo, bạn cần cung cấp trình xử lý Instagram của hồ sơ đích. Các có người theo dõi() và get_followees () phương pháp trích xuất những người theo dõi và những người được theo dõi. Bạn có thể lấy tên người dùng của người theo dõi và người được theo dõi bằng cách sử dụng follower.username và followee.username các thuộc tính tương ứng.
Nếu bạn muốn lưu trữ kết quả trong tệp CSV, trước tiên bạn cần chuyển đổi dữ liệu thành đối tượng Pandas DataFrame. Sử dụng pd.DataFrame () để chuyển đổi một đối tượng danh sách thành một DataFrame.
Cuối cùng, bạn có thể xuất đối tượng DataFrame sang tệp CSV bằng cách sử dụng to_csv () phương pháp. Bạn cần phải vượt qua filename.csv làm tham số cho phương thức này để nhận dữ liệu đã xuất ở định dạng tệp CSV.
Chỉ chủ sở hữu tài khoản mới có thể xem tất cả những người theo dõi và theo dõi. Bạn sẽ không thể trích xuất tất cả dữ liệu người theo dõi và theo dõi bằng phương pháp này hoặc bất kỳ phương pháp nào khác.
import instaloader
import pandas as pd
bot = instaloader.Instaloader()
bot.login(user="Your_username", passwd="Your_password")
profile = instaloader.Profile.from_username(bot.context, 'Your_target_account_insta_handle')
followers = [follower.username for follower in profile.get_followers()]
followers_df = pd.DataFrame(followers)
followers_df.to_csv('followers.csv', index=False)
followings = [followee.username for followee in profile.get_followees()]
followings_df = pd.DataFrame(followings)
followings_df.to_csv('followings.csv', index=False)
Tải xuống bài đăng từ tài khoản Instagram
Một lần nữa, để tải xuống các bài đăng từ bất kỳ tài khoản nào, bạn sẽ cần cung cấp tên người dùng và mật khẩu. Điều này để bot có thể đăng nhập vào Instagram bằng tài khoản của bạn. Bạn có thể truy xuất tất cả dữ liệu của bài đăng bằng cách sử dụng get_posts () phương pháp. Và bạn có thể lặp lại và tải xuống tất cả các bài đăng riêng lẻ bằng cách sử dụng download_post () phương pháp.
import instaloader
import pandas as pd
bot = instaloader.Instaloader()
bot.login(user="Your_username",passwd="Your_password")
profile = instaloader.Profile.from_username(bot.context, 'Your_target_account_insta_handle')
posts = profile.get_posts()
for index, post in enumerate(posts, 1):
bot.download_post(post, target=f"{profile.username}_{index}")
Lướt web bằng Python
Gom dữ liệu hoặc quét web là một trong những cách phổ biến nhất để trích xuất thông tin hữu ích từ web. Bạn có thể sử dụng dữ liệu bạn trích xuất để tiếp thị, tạo nội dung hoặc ra quyết định.
Python là ngôn ngữ ưa thích để thu thập dữ liệu. Các thư viện như BeautifulSoup, Scrapy và Pandas đơn giản hóa việc trích xuất, phân tích và trực quan hóa dữ liệu.