Hướng dẫn đơn giản hóa việc quét web bằng Python với AutoScraper

Hướng dẫn, cạo, Python, May-23-20245 phút đọc

AutoScraper là một thư viện quét web mã nguồn mở mạnh mẽ dành cho Python giúp đơn giản hóa quá trình trích xuất dữ liệu từ các trang web. Không giống như các khung quét web truyền thống yêu cầu mã hóa mở rộng để phân tích cú pháp nội dung HTML, AutoScraper có thể tự động tạo các quy tắc để trích xuất thông tin mong muốn dựa trên các ví dụ bạn cung cấp. AutoScraper đặc biệt phù hợp cho người mới bắt đầu trong thế giới quét web. Giao diện thân thiện với người dùng và tạo quy tắc tự động của nó giúp những người có thể không có nhiều kinh nghiệm viết mã có thể truy cập được.   

Các tính năng chính của AutoScraper

  • Dễ sử dụng: Với một vài dòng mã, bạn có thể thiết lập một trình quét web yêu cầu bảo trì tối thiểu.
  • Trích xuất dữ liệu hiệu quả: Mô hình của AutoScraper tìm hiểu cấu trúc của các trang web để thích ứng với những thay đổi nhỏ, giảm nhu cầu điều chỉnh thường xuyên.
  • Linh hoạt: Nó hỗ trợ một loạt các trang web và có thể được tích hợp vào các đường ống dữ liệu lớn hơn.

AutoScraper bắt đầu nhanh

Giả sử bạn muốn cạo một cửa hàng thương mại điện tử mà không cần xử lý phân tích cú pháp HTML. AutoScraper cho phép bạn nhập tên sản phẩm vào 'wanted_list' và nó sẽ tự động tìm hiểu cấu trúc HTML và tự phân tích cú pháp các sản phẩm tiếp theo.

Dưới đây là một ví dụ rõ ràng để chứng minh quy trình, bao gồm cả việc triển khai proxy:

Bước 1: Cài đặt AutoScraper

Trước tiên, bạn sẽ cần cài đặt AutoScraper. Bạn có thể làm điều này bằng cách sử dụng pip:

từ autoscraper nhập AutoScraper

Bước 3: Xác định URL và danh sách mong muốn

Chỉ định URL bạn muốn cạo và các yếu tố hoặc sản phẩm bạn muốn trích xuất. Bằng cách đó, AutoScraper có thể tìm hiểu cấu trúc HTML và phân tích chính xác tất cả các phần tử tương tự trong khung đó:

URL = 'https://books.toscrape.com/'
wanted_list = [
    "Lật nhung",
    "Soumission",
]

Bước 4: Xây dựng Scraper

Sử dụng AutoScraper để xây dựng mô hình cạo của bạn:

    scraper = AutoScraper()
    
    proxies = {
        "http": 'http://test_user112:[email protected]:6060',
        "https": 'http://test_user112:[email protected]:6060',
    }
    #  if you wish to use the same scraper again
    scraper.save('books_to_scrape')
    result = scraper.build(url, wanted_list, request_args=dict(proxies=proxies))
    print(result)

Bước 5: (Tùy chọn) Sử dụng lại dụng cụ cạo trước đó

    scraper = AutoScraper () scraper.load('books_to_scrape')

Kết quả = scraper.get_result(URL)

Đầu ra được tạo bởi mã:

['Một ánh sáng trong ...', 
'Lật nhung', 
'Soumission', 
"Sắc bén Đối tượng', 
'Sapiens: Một lịch sử ngắn gọn ...', 
"Các Requiem Red', 'Những bí mật nhỏ bẩn thỉu ...', 
"Các Người phụ nữ sắp tới: A...', 
"Các Những chàng trai trong ...', 
"Các Maria đen ', 
"Chết đói Trái tim (Giao dịch tam giác...', 
"Những bản sonnet của Shakespeare", 
"Đặt Tôi tự do', 
"Tiểu tử quý giá của Scott Pilgrim...", 
'Xé nó ra và...', 
"Của chúng tôi Ban nhạc có thể là...', 
'Olio', 
'Mesaerion: Khoa học tốt nhất ...', 
'Chủ nghĩa tự do cho người mới bắt đầu', 
"Chỉ có dãy Hy Mã Lạp Sơn", 
"A Ánh sáng trên gác mái ', 
'Sapiens: Lược sử nhân loại', 
"Các Những bí mật nhỏ bẩn thỉu để có được công việc mơ ước của bạn ', 
"Các Người phụ nữ sắp tới: Một cuốn tiểu thuyết dựa trên cuộc đời của nhà nữ quyền khét tiếng, Victoria Woodhull ', 
"Các Boys in the Boat: Nine Americans and Their Epic Quest for Gold tại Thế vận hội Berlin 1936 ', 
"Chết đói Trái tim (Triangular Trade Trilogy, #1)', 
"Cuộc sống nhỏ bé quý giá của Scott Pilgrim (Scott Pilgrim # 1)", 
'Xé nó ra và bắt đầu lại', 
"Của chúng tôi Ban nhạc có thể là cuộc sống của bạn: Cảnh trong Indie Underground của Mỹ, 1981-1991 ',  
'Mesaerion: Những câu chuyện khoa học viễn tưởng hay nhất 1800-1849']

Hạn chế

  Một trong những hạn chế chính của AutoScraper là nó không hỗ trợ kết xuất JavaScript hoặc dữ liệu được tải động. Nhưng đừng lo lắng, có một giải pháp! Bằng cách sử dụng các thư viện Python như Selenium hoặc Playwright, xử lý dữ liệu động, chúng ta có thể lấy dữ liệu HTML và sau đó để Autoscraper xử lý việc phân tích cú pháp cho chúng ta.
Nếu trang web mục tiêu của bạn sử dụng bảo vệ chống bot, tại ProxyScrape, chúng tôi cung cấp API quét web đáng tin cậy đảm nhận mọi thứ cho bạn, giúp quá trình thu thập dữ liệu của bạn trở nên dễ dàng và hiệu quả.
Dưới đây là ví dụ về cách bạn có thể sử dụng API quét web của chúng tôi với AutoScraper:  

import requests
from autoscraper import AutoScraper


def send_request(url_to_scrape):
    api_key = 'your_api_key' 
    data = {
        "url": url_to_scrape,
        "browserHtml": True  # Use browserHtml for JavaScript rendering
    }
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    response = requests.post("https://api.proxyscrape.com/v3/accounts/freebies/scraperapi/request",
                             headers=headers, json=data)

    #  we return the html data that web scraping api extracted
    return response.json()['data']['browserHtml']

if __name__ == '__main__':
    target_url = 'https://books.toscrape.com/'

    # get html data using web scraping api
    html_content = send_request(target_url)

    # parse that html data using AutoScraper
    scraper = AutoScraper()

    wanted_list = [
        "Tipping the Velvet",
        "Soumission",
    ]

    result = scraper.build(wanted_list=wanted_list, html=html_content)

    print(result)

Các phương pháp hay nhất để quét web với AutoScraper và proxy

  • Tôn trọng Điều khoản Dịch vụ của Trang web: Luôn xem xét và tuân thủ các điều khoản dịch vụ của trang web trước khi cạo.
  • Sử dụng proxy xoay: Để tránh bị phát hiện và giới hạn tốc độ, hãy sử dụng proxy luân phiên thay đổi địa chỉ IP thường xuyên. ProxyScrape Cung cấp proxy dân cư và di động luân phiên hoàn hảo cho mục đích này.
  • Điều tiết yêu cầu của bạn: Thực hiện sự chậm trễ giữa các yêu cầu để bắt chước hành vi của con người và giảm nguy cơ bị cấm.
  • Giám sát các hoạt động của bạn: Thường xuyên kiểm tra sức khỏe của proxy của bạn và hiệu suất của máy cạp của bạn để xác định và giải quyết mọi vấn đề một cách nhanh chóng.
  • Luôn cập nhật: Luôn cập nhật các tập lệnh và danh sách proxy của bạn để thích ứng với những thay đổi trong cấu trúc trang web và xoay vòng IP proxy.

Kết thúc

Web scraping là một công cụ mạnh mẽ để thu thập dữ liệu và với sự kết hợp đúng đắn giữa AutoScraper và proxy, bạn có thể mở khóa toàn bộ tiềm năng của nó. Bằng cách tích hợp ProxyScrapeProxy cao cấp, bạn đảm bảo rằng các hoạt động cạo của bạn hiệu quả, ẩn danh và không bị gián đoạn. Chúng tôi đã cung cấp cho bạn các yếu tố cần thiết để giúp bạn bắt đầu, nếu bạn muốn nâng cao hơn với AutoScraper, hãy kiểm tra ý chính này.

Bạn đã sẵn sàng nâng tầm trò chơi cạo web của mình chưa? Bắt đầu khám phá các khả năng của AutoScraper với ProxyScrapecủa proxy cao cấp ngày hôm nay. Thăm ProxyScrape để đăng ký và tận dụng các giải pháp proxy hiện đại của chúng tôi.

Nếu bạn cần hỗ trợ quét web, vui lòng tham gia kênh Discord của chúng tôi, nơi bạn có thể tìm thấy hỗ trợ.

Chúc mừng cạo!