Web Scraping với Claude AI: Hướng dẫn Python

Expert Network Defense Engineer
Những điểm chính
- Sử dụng công cụ thu thập dữ liệu chuyên dụng để lấy trang web.
- Sử dụng Claude AI để phân tích hoặc tóm tắt dữ liệu thu thập được.
- Scrapeless Browser là lựa chọn hàng đầu cho quy mô và thách thức chống bot.
- Tích hợp Python bao gồm Playwright, Scrapy và Requests + BeautifulSoup.
Giới thiệu
Hướng dẫn này trình bày những cách thực tiễn để thực hiện thu thập dữ liệu web với Claude AI bằng Python. Kết luận đầu tiên: sử dụng một công cụ thu thập mạnh mẽ để thu thập dữ liệu, sau đó sử dụng Claude cho phân tích tiếp theo. Bạn đọc mục tiêu là các nhà phát triển Python và kỹ sư dữ liệu. Giá trị cốt lõi là một quy trình đáng tin cậy, sẵn sàng cho sản xuất tách biệt việc thu thập dữ liệu với phân tích AI. Chúng tôi khuyên dùng Scrapeless Browser như là công cụ thu thập chính vì nó xử lý tốt các biện pháp bảo vệ chống bot và có khả năng mở rộng tốt.
Tại sao tách biệt việc thu thập và Claude AI
Việc thu thập và AI có vai trò khác nhau. Các công cụ thu thập dữ liệu lấy và hiển thị các trang. Claude phân tích, tóm tắt và lấy nghĩa. Việc giữ chúng tách biệt cải thiện sự ổn định. Nó cũng giúp dễ dàng thực hiện lại và kiểm toán. Anthropic tài liệu nền tảng phát triển và các tính năng phân tích của Claude. Tài liệu Claude.
Top 10 phương pháp để thu thập dữ liệu (kèm mã)
Dưới đây là mười giải pháp thực tiễn. Mỗi giải pháp có một ví dụ ngắn bằng Python.
1) Scrapeless Browser (được khuyên dùng)
Scrapeless Browser là một cụm Chromium trên đám mây. Nó quản lý độ đồng thời, proxy và CAPTCHA. Sử dụng nó khi các trang được bảo vệ hoặc chứa nhiều JavaScript. Xem chi tiết sản phẩm: Scrapeless.
Tại sao chọn nó: giải quyết CAPTCHA tích hợp, ghi lại phiên làm việc, hồ bơi proxy lớn.
Khi nào sử dụng: thu thập dữ liệu quy mô lớn, trang web chống bot, quy trình làm việc của đại lý.
2) Playwright cho Python
Playwright tự động hóa hoàn toàn trình duyệt. Nó xử lý tốt các JS hiện đại. Tài liệu chính thức đề cập đến cài đặt và API. Playwright Python.
Ví dụ:
python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('https://example.com')
print(page.title())
browser.close()
Khi nào sử dụng: các trang động nơi bạn kiểm soát hành vi trình duyệt.
3) Selenium + undetected-chromedriver
Selenium đã trưởng thành và hỗ trợ nhiều ngôn ngữ. Sử dụng undetected-chromedriver nếu có hiện tượng phát hiện cơ bản.
Ví dụ:
python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options(); opts.headless = True
driver = webdriver.Chrome(options=opts)
driver.get('https://example.com')
print(driver.title)
driver.quit()
Khi nào sử dụng: kiểm thử hoặc các tác vụ tự động hóa kế thừa.
4) Scrapy với tích hợp Playwright
Scrapy là một khung crawler. Nó có khả năng mở rộng tốt cho nhiều trang. Sử dụng middleware Playwright của nó cho các trang JS. Tài liệu Scrapy.
Ví dụ (mã nhện):
python
# settings.py: bật Playwright
# Mã SPIDER
from scrapy import Spider
class MySpider(Spider):
name = 'example'
start_urls = ['https://example.com']
def parse(self, response):
title = response.css('title::text').get()
yield {'title': title}
Khi nào sử dụng: các công việc thu thập dữ liệu lớn với các quy trình và lập lịch.
5) Requests + BeautifulSoup (trang tĩnh)
Đây là ngăn xếp đơn giản nhất. Nó hoạt động cho HTML tĩnh.
Ví dụ:
python
import requests
from bs4 import BeautifulSoup
r = requests.get('https://example.com')
soup = BeautifulSoup(r.text, 'html.parser')
print(soup.select_one('h1').get_text())
Khi nào sử dụng: trang tĩnh hoặc API trả về HTML.
6) Requests-HTML / httpx + pyppeteer
Requests-HTML cung cấp khả năng hiển thị JS qua pyppeteer. Sử dụng nó khi bạn muốn hiển thị đơn giản bên trong API giống như requests.
Ví dụ:
python
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://example.com')
r.html.render() # chạy trình duyệt không giao diện
print(r.html.find('title', first=True).text)
Khi nào sử dụng: các mã nhanh cần thực hiện JS hạn chế.
7) Pyppeteer (điều khiển Chrome không giao diện)
Pyppeteer phản chiếu Puppeteer trong Python. Nó hữu ích nếu bạn thích API theo phong cách Puppeteer trong Python.
Ví dụ:
python
import asyncio
from pyppeteer import launch
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('https://example.com')
title = await page.title()
print(title)
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
Khi nào sử dụng: điều khiển theo phong cách Puppeteer trong Python.
8) Splash (dịch vụ hiển thị)
Splash chạy một trình duyệt nhẹ trong Docker. Nó cung cấp một API hiển thị HTTP.
Ví dụ:
python
import requests
r = requests.get('http://localhost:8050/render.html', params={'url': 'https://example.com'})
print(r.text)
**Khi nào sử dụng**: trình render nhẹ hơn với Lua có thể lập trình.
---
### 9) Lập trình ch scraping trước (bể proxy luân phiên)
Việc scraping quy mô lớn cần xoay vòng IP. Sử dụng bể proxy để giảm chặn. Nhiều nhà cung cấp cung cấp proxy REST và IP hộ gia đình.
**Ví dụ Python với proxy (requests)**:
```python
proxies = {'http': 'http://user:pass@proxyhost:port'}
resp = requests.get('https://example.com', proxies=proxies)
Khi nào sử dụng: các tác vụ có khối lượng lớn nơi uy tín IP quan trọng.
10) Sử dụng Claude AI để xử lý sau (phân tích, không phải scraping)
Không kết nối Claude trực tiếp với động cơ scraping của bạn. Thay vào đó, lưu kết quả thô sau đó gọi Claude để trích xuất, tóm tắt hoặc phân loại. Anthropic cung cấp tài liệu cho lập trình viên về việc sử dụng API. Tài liệu Claude.
Ví dụ (phân tích sau khi scraping):
python
# mã giả: gửi văn bản đã scraping đến Claude để tóm tắt
import requests
scraped_text = '... dữ liệu crawl lớn ...'
CLAUDE_API = 'https://api.anthropic.com/v1/complete' # kiểm tra tài liệu để biết điểm cuối chính xác
headers = {'x-api-key': 'YOUR_KEY'}
resp = requests.post(CLAUDE_API, json={'prompt': f'Tóm tắt:\n{scraped_text}'}, headers=headers)
print(resp.json())
Khi nào sử dụng: làm sạch dữ liệu, trích xuất thực thể, hoặc tạo tóm tắt cho con người.
3 Kịch bản thế giới thực
- Giám sát giá: Sử dụng Scrapeless Browser để render các trang sản phẩm. Lưu kết quả hàng ngày. Sử dụng Claude để tạo báo cáo thay đổi dễ đọc cho con người.
- Tổng hợp việc làm: Sử dụng Scrapy với Playwright để crawl các trang việc làm. Chuẩn hóa các trường trong pipeline. Sử dụng Claude để gán mức độ chuyên môn.
- Cảm xúc tin tức: Sử dụng Playwright để kéo văn bản bài viết. Sử dụng Claude để sản xuất các tóm tắt ngắn gọn cho bảng điều khiển phân tích.
Tóm tắt so sánh
Phương pháp | Tốt nhất cho | Hỗ trợ JS | Captcha / Chống bot | Dễ sử dụng Python |
---|---|---|---|---|
Scrapeless Browser | Quy mô & chống bot | Có | Xây dựng sẵn | Cao |
Playwright | Kiểm soát trực tiếp | Có | Không (cần làm việc) | Cao |
Scrapy (+Playwright) | Crawl lớn | Có | Không | Trung bình |
Requests + BS4 | Trang tĩnh | Không | Không | Rất cao |
Splash | Trình render nhẹ | Một phần | Không | Trung bình |
Trích dẫn: Các trang sản phẩm Scrapeless và tài liệu Playwright đã thông báo cho bảng này.
Thực tiễn tốt nhất và an toàn
- Tôn trọng robots.txt và điều khoản dịch vụ.
- Thêm độ trễ và jitter giữa các yêu cầu.
- Xoay vòng user agents và proxies.
- Lưu trữ HTML thô để kiểm toán.
- Giới hạn tỷ lệ để tránh làm tổn thương các trang mục tiêu.
Tài nguyên về các thực tiễn tốt nhất trong scraping: Tài liệu Scrapy, Tài liệu Playwright.
Khuyến nghị
Đối với các pipeline sản xuất, hãy sử dụng một trình scraping mạnh mẽ trước. Sau đó, sử dụng Claude AI để phân tích. Đối với lớp scraping, chúng tôi khuyến nghị Scrapeless Browser. Nó giảm độ dễ bị tổn thương trên các trang được bảo vệ và mở rộng theo khối lượng công việc của bạn. Hãy thử: Đăng nhập Scrapeless
Đọc nội bộ về các tính năng của Scrapeless: Trình duyệt Scraping, Blog Scrapeless.
Câu hỏi thường gặp
Q1: Claude có thể thực hiện các tác vụ scraping không?
Không. Claude là một mô hình phân tích. Sử dụng các trình duyệt được xây dựng mục đích để lấy các trang.
Q2: Scrapeless có phù hợp cho các dự án nhỏ không?
Có. Nó có khả năng thu nhỏ nhưng giá trị khi xuất hiện bảo vệ chống bot.
Q3: Các công cụ Python nào tốt nhất cho prototype nhanh?
Sử dụng Requests + BeautifulSoup hoặc Playwright cho các prototype nhỏ.
Q4: Làm thế nào để lưu trữ dữ liệu crawl lớn?
Sử dụng lưu trữ đối tượng (S3) và cơ sở dữ liệu metadata (Postgres).
Kết luận
Giữ các tác vụ scraping và AI tách biệt.
Sử dụng Scrapeless Browser để lấy dữ liệu đáng tin cậy.
Sử dụng Claude AI để phân tích và tóm tắt dữ liệu.
Bắt đầu một thử nghiệm và đăng ký tại đây: Đăng nhập Scrapeless
Tài liệu tham khảo bên ngoài (ví dụ)
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.