Cách tải xuống ảnh tiểu sử trên Instagram bằng Python
Ảnh đại diện là một trong những yếu tố chính của bất kỳ tài khoản mạng xã hội nào nhưng các ứng dụng như Instagram không cho phép bạn xem hoặc tải xuống. Quá trình này có thể dễ dàng đạt được bằng cách sử dụng một công cụ tự động hóa web như Selenium với Python.
Học cách sử dụng bộ đôi sức mạnh này để tương tác với bất kỳ phần tử nào của trang web, tự động hóa trang web và tiết kiệm thời gian vô giá khi đầu tư vào các công việc hiệu quả. Và phần tốt nhất? Xây dựng điều này mà không cần đăng nhập hoặc có tài khoản Instagram.!
Mục Lục
Quy trình xây dựng thuật toán
Xây dựng thuật toán đề cập đến quá trình xác định vấn đề và liệt kê các bước mà chương trình cần để tự động hóa. Các bước khác nhau cần thiết để tải xuống ảnh hồ sơ là:
- Lấy tên người dùng của một hồ sơ làm đầu vào
- Mở Google Chrome
- Truy cập hồ sơ Instagram
- Tải ảnh hồ sơ xuống
Điều này đóng vai trò là thuật toán của câu lệnh bài toán.
Dự án này sử dụng các mô-đun và công cụ Python sau.
1. Mô-đun Urllib
Urllib là một mô-đun Python được sử dụng để xử lý các URL từ internet. Bạn sẽ sử dụng mô-đun này để tải xuống ảnh hồ sơ của tài khoản từ URL nguồn của nó. Nếu Urllib không có trong hệ thống của bạn, bạn có thể cài đặt nó bằng lệnh pip cài đặt urllib.
2. Mô-đun thời gian
Mô-đun này, mặc dù không bắt buộc, nhưng có thể khiến quá trình xây dựng bị lỗi nếu kết nối internet của bạn chậm hoặc nội dung của trang web không được tải trong thời gian chương trình Python tương tác với trang web. Hàm delay () giúp chúng ta đặt một độ trễ nhỏ để quá trình xây dựng không bị lỗi.
3. Mô-đun Selenium
Một trong những công cụ tự động hóa trình duyệt nguồn mở phổ biến nhất là Selenium. Nó có sẵn dưới dạng gói Python hỗ trợ nhiều trình duyệt khác nhau như Google Chrome, Microsoft Edge, Safari và Mozilla Firefox. Để cài đặt Selenium trong môi trường Python của bạn, hãy mở Phần cuối và thực hiện pip cài đặt selen.
4. WebDriver
Trình điều khiển web là một công cụ được Selenium sử dụng để thiết lập kết nối giữa chương trình và bất kỳ trang web nào. Các loại trình điều khiển web khác nhau có sẵn dựa trên trình duyệt bạn muốn tự động hóa. Đối với bản dựng này, bạn sẽ sử dụng trình duyệt Google Chrome. Để cài đặt trình điều khiển web cho Chrome:
- Kiểm tra phiên bản trình duyệt bạn đang sử dụng bằng cách truy cập Thực đơn (3 chấm) > Trợ giúp > Về Google Chrome.
- Lưu ý phiên bản của trình duyệt.
- Truy cập trang tải xuống của ChromeDriver – WebDriver dành cho Chrome.
- Chọn tùy chọn phù hợp với số phiên bản của bạn từ các bản phát hành ChromeDriver hiện tại.
- Chọn và tải xuống tệp theo hệ điều hành của bạn.
- Giải nén tệp đã tải xuống và đặt nó vào cùng thư mục với chương trình Python của bạn. Điều này sẽ hữu ích trong việc thiết lập đường dẫn trong quá trình viết mã.
Cách kiểm tra mã để tự động hóa mọi khía cạnh của trang web
Đối với bất kỳ quy trình tự động hóa web nào sử dụng Selenium và Python, điều cần thiết là phải có hiểu biết cơ bản về web và các công nghệ của nó. Bước đầu tiên là giới thiệu về HTML, sau đó là hiểu về Trang tính kiểu xếp tầng (CSS). Đây là nơi bạn sẽ làm quen với khái niệm id và lớp.
Id và lớp là tên duy nhất được đặt cho một phần tử hoặc tập hợp các phần tử (thẻ) tương ứng. Sử dụng chúng, bạn xác định vị trí phần tử được yêu cầu và hướng dẫn chương trình Python nhắm mục tiêu nó một cách cụ thể. Để kiểm tra mã và tìm ảnh hồ sơ:
- Mở trang web của tài khoản Instagram.
- Bấm vào trình duyệt Thực đơn > Thêm công cụ > Những công cụ phát triển hoặc sử dụng phím tắt Ctrl + Shift + I để kích hoạt Những công cụ phát triển lượt xem.
- Nhấp và chọn Bộ chọn phần tử (biểu tượng con trỏ chuột) ở góc trái của cửa sổ và di chuột qua bất kỳ phần nào của trang web để chuyển đến phần mã đó.
- Điều quan trọng cần lưu ý là ảnh hồ sơ của tài khoản công khai và tài khoản riêng tư được đặt khác nhau. Di con trỏ qua ảnh hồ sơ của tài khoản công khai. Thuộc tính lớp cho Hồ sơ công khai là _aa8j.
- Lặp lại bước trên cho một hồ sơ cá nhân. Thuộc tính lớp là _aadp.
Bạn có thể sử dụng quy trình này để hiểu bất kỳ trang web nào và nhắm mục tiêu bất kỳ phần tử nào để tự động hóa.
Cách xây dựng Trình tải xuống Pic của Hồ sơ Instagram
Làm theo các bước sau để tạo trình tải xuống.
- Nhập các mô-đun được yêu cầu vào môi trường Python.
from selenium import webdriver
import time
import urllib.request - Sử dụng chức năng đầu vào, lấy tên người dùng của hồ sơ có ảnh hồ sơ sẽ được tải xuống và lưu trữ nó trong một biến được gọi là tên người dùng.
username=input("Enter the username of the profile: ") - Khởi tạo trình điều khiển web bằng cách tạo một đối tượng của nó và chuyển đường dẫn hệ thống tệp của nó.
cd='chromedriver.exe' - Sử dụng webdriver.Chrome chức năng khởi chạy trình duyệt Google Chrome.
driver = webdriver.Chrome(cd) - URL của bất kỳ tài khoản Instagram nào có định dạng https://www.instagram.com/ theo sau là tên người dùng. Đặt URL của hồ sơ là,
url='https://www.instagram.com/'
url_p=url+user_h - Chuyển URL đầy đủ của hồ sơ Instagram để được truy cập vào hàm get ().
driver.get(url_p) - Đặt thời gian trễ được đề xuất tùy chọn để trang web tải hoàn toàn.
time.sleep(5) - Sử dụng khối thử loại trừ để định vị và xác định xem ảnh hồ sơ có thuộc hồ sơ công khai hay không. Điều này được thực hiện bằng cách sử dụng thuộc tính class trong biểu thức XPath. Trong trường hợp không thành công, hãy sử dụng khối ngoại trừ để tìm kiếm ảnh hồ sơ của tài khoản cá nhân.
try:
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
except:
image=driver.find_element_by_xpath('//img[@class="_aadp"]') - Sử dụng get_attribute (), lấy thuộc tính src của hình ảnh. Điều này trả về liên kết của hình ảnh.
img_link=image.get_attribute('src') - Đặt đường dẫn và phần mở rộng của tệp đã tải xuống. Ví dụ: bạn có thể đặt ảnh được tải xuống ổ D: của hệ thống tệp của bạn ở định dạng JPG như.
path="D:\"+username+".jpg" - Tải xuống hình ảnh bằng cách chuyển liên kết của ảnh hồ sơ làm nguồn và đường dẫn thư mục hệ thống cục bộ làm đích đến hàm urlretrieve ().
urllib.request.urlretrieve(img_link,path) - Truy cập thư mục và thấy rằng ảnh hồ sơ đã được tải xuống. Theo tùy chọn, bạn cũng có thể hiển thị đường dẫn mà ảnh hồ sơ đã được tải xuống.
print("The profile pic has been downloaded at: "+path)
Mã nguồn cuối cùng cho Instagram Profile Pic Downloader Sử dụng Python
Kết hợp tất cả lại với nhau, bạn sẽ nhận được:
from selenium import webdriver
import time
import urllib.request
user_h=input("Enter the username of the profile: ")
url='https://www.instagram.com/'
url_p=url+user_h
cd='chromedriver.exe'
driver = webdriver.Chrome(cd)
driver.get(url_p)
time.sleep(5)
try:
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
except:
image=driver.find_element_by_xpath('//img[@class="_aadp"]')
img_link=image.get_attribute('src')
Các ứng dụng của tự động hóa web
Tự động hóa không chỉ giúp bạn tiết kiệm thời gian, tiền bạc và công sức mà còn đảm bảo hoàn thành công việc đồng thời ngăn ngừa sai sót. Sử dụng kỹ thuật này để tự động hóa việc đăng nhập của các trang web khác nhau, thực hiện sao lưu máy chủ đám mây, lên lịch tin nhắn, chúc sinh nhật trên các nền tảng truyền thông xã hội, tạo bài đăng, xuất bản tweet, v.v.