TL;DR
- Việc trích xuất siêu dữ liệu cần cả siêu dữ liệu phản hồi cấp trang và phân tích thẻ HTML rõ ràng.
- Các thuộc tính Open Graph là các thẻ meta HTML; một tiêu đề phản hồi Crawl đơn thuần không cung cấp mọi trường OG.
- Giữ lại phần đầu tài liệu, các giá trị
og:imagelặp lại, URL cuối cùng và URL chuẩn trong một cuộc kiểm tra. - Giải quyết các URL hình ảnh tương đối và đánh dấu các trường bị thiếu hoặc xung đột thay vì đoán giá trị.
- Nstdata Crawl xử lý việc kết xuất JavaScript và điều hướng proxy trong các yêu cầu được quản lý; tài liệu của nó liệt kê sáu danh mục đầu ra: Markdown, HTML, dữ liệu thô, PDF, ảnh chụp màn hình và liên kết.
Bạn Nên Trích Xuất Siêu Dữ Liệu Trang Web Gì?
Siêu dữ liệu trang web bao gồm tiêu đề tài liệu, mô tả, ngôn ngữ, URL chuẩn và các thẻ xem trước xã hội tùy chọn như og:title, og:description, og:image và og:url. Siêu dữ liệu phản hồi của Crawl có thể mô tả trang được lấy, nhưng các trường Open Graph tồn tại trong các phần tử HTML <meta> và cần phân tích rõ ràng trừ khi một điểm cuối được tài liệu hóa phơi bày chúng. Giữ lại các giá trị thẻ gốc và URL cuối cùng để một cuộc kiểm tra sau có thể phân biệt một thẻ vắng mặt với một lỗi phân tích.
Nstdata Crawl có thể biến một URL hoặc một tập hợp giới hạn các trang liên kết thành tài liệu cho một tác nhân AI, chỉ mục RAG, hoặc đường ống dữ liệu. Sử dụng các quy tắc trường và kiểm tra chấp nhận của riêng bạn cho kết quả cụ thể: thu thập tiêu đề trang, mô tả, URL chuẩn và các trường Open Graph từ một tập hợp giới hạn các trang. Hướng dẫn Nstdata full-site crawling giải thích tùy chọn cấp trang.
Đối với nhiệm vụ hẹp hơn được đề cập ở đây, Hướng dẫn crawl trang Nstdata cung cấp bối cảnh hữu ích để chọn trang đại diện đầu tiên.
Bạn Cần Gì Trước Khi Bắt Đầu?
Định nghĩa các trường và quy tắc xử lý trùng lặp trước khi quét một trang web. Ghi lại xem bạn cần URL ban đầu, URL cuối cùng, URL chuẩn, hoặc og:url; chúng có thể khác nhau. Quyết định cách xử lý nhiều giá trị og:image, các URL hình ảnh tương đối, mô tả trống, và các trang địa phương. Chỉ sử dụng các trang công cộng hoặc được ủy quyền, một phạm vi URL giới hạn, và một khóa Nstdata ở phía máy chủ cho việc thu thập được quản lý.
Tài liệu Crawl API sử dụng https://api.nstdata.io, tiêu đề x-api-key, và Content-Type: application/json. Chuẩn bị các trường này trước khi chạy một phương thức:
| Trường | Những gì cần cung cấp |
|---|---|
url | Một trang hoặc URL đầu vào HTTPS được phép |
formats | Các đầu ra yêu cầu, chẳng hạn như ["markdown"] hoặc ["html","screenshot"] |
onlyMainContent | true chỉ khi lựa chọn nội dung chính phù hợp với nhiệm vụ |
maxDepth, maxPages | Giới hạn rõ ràng cho một công việc trên toàn trang web |
includeUrls, excludeUrls | Các mẫu URL giữ cho việc phát hiện trong phạm vi |
timeout | Thời gian hết hạn công việc tính bằng mili giây khi mặc định không phù hợp |
Yêu cầu được quản lý tiêu chuẩn không có Host, Port, Username, Password, hoặc các trường Giao thức proxy riêng biệt. Kiểm tra trang giá hiện tại của Crawl để biết giới hạn tài khoản và phí trước khi chạy một công việc lớn.
Xem xét chính sách và phạm vi truy cập của mục tiêu. Giao thức loại trừ Robots định nghĩa cách mà các crawler đọc quy tắc robots; nó không cấp quyền sử dụng nội dung. Giữ thông tin xác thực và dữ liệu cá nhân ra khỏi các ví dụ và nhật ký chẩn đoán.
Hướng dẫn chất lượng dữ liệu web Nstdata là một tài liệu bổ sung để định nghĩa các kiểm tra chấp nhận trước khi tự động hóa quy trình làm việc.
Các Thẻ Open Graph Được Lưu Trữ Trên Một Trang Như Thế Nào?
Các thuộc tính Open Graph được lưu trữ trong các phần tử meta HTML như meta[property="og:title"], thường trong phần đầu tài liệu. Nstdata Crawl có thể lấy một trang đơn hoặc một trang web giới hạn, kết xuất JavaScript khi cần thiết, và trả về HTML với siêu dữ liệu trang. Sử dụng API để thu thập, sau đó phân tích phần đầu tài liệu hoặc HTML trả về để lấy các phần tử Open Graph và URL chuẩn. Việc định tuyến proxy được quản lý của dịch vụ không yêu cầu một Host, Port, Username, hoặc Password proxy riêng biệt trong yêu cầu tiêu chuẩn. Một phiên quét trang có thể phát hiện nhiều trang, nhưng ứng dụng vẫn thực hiện ánh xạ và xác thực từng thẻ.
Đối với một URL đã biết, một lần truy xuất trang đơn sẽ lấy về một kết quả. Đối với một phần trang web, POST /api/v1/crawl phát hiện các trang liên kết theo cách đệ quy trong giới hạn độ sâu, số lượng trang và quy tắc URL được cung cấp. Tài liệu tài liệu liệt kê Markdown, HTML, dữ liệu thô, PDF, ảnh chụp màn hình, và liên kết là sáu danh mục đầu ra; trang sản phẩm cũng quảng bá JSON, nhưng một lược đồ JSON riêng miền vẫn cần ánh xạ trường một cách rõ ràng. Giữ mỗi bản ghi được chấp nhận gắn liền với URL nguồn và siêu dữ liệu trả về.
Thử nghiệm một trang web đại diện nặng JavaScript trước khi mở rộng quy mô. Trạng thái đã được kết xuất có thể phụ thuộc vào thời gian, khu vực, sự đồng ý hoặc một phiên đã đăng nhập. So sánh HTML trả về hoặc ảnh chụp màn hình với trạng thái trang mong đợi; nếu chúng khác nhau, chỉ điều chỉnh các điều khiển kết xuất và chờ đợi đã được tài liệu hóa.
Làm thế nào bạn trích xuất siêu dữ liệu trang web và thẻ Open Graph?
Kiểm tra một tiêu đề trang, thu hồi đại diện HTML cần thiết, và mở rộng cùng một bản đồ trường trên một trang web có giới hạn. Giữ siêu dữ liệu phản hồi tách biệt khỏi các thẻ được phân tích từ trang.
Phương pháp 1: Kiểm tra một trang trong Playground
Tốt nhất để xác nhận liệu các thẻ cần thiết có tồn tại trong đầu ra HTML đã chọn hay không.
Bước 1: Mở một trang đại diện
Đi đến Bảng điều khiển → Playground Crawl và nhập một URL được ủy quyền. [Ảnh chụp màn hình: Điều khiển URL và đầu ra HTML.]
Bước 2: Yêu cầu HTML và siêu dữ liệu
Chọn đầu ra HTML và chạy truy xuất trang. Kiểm tra các trường tiêu đề và ngôn ngữ đã trả về, sau đó kiểm tra xem HTML có bao gồm meta[property="og:title"] và một liên kết chuẩn hay không.
Bước 3: Ghi lại bản đồ trường
Ghi lại thẻ hoặc trường phản hồi chính xác cho mỗi khóa đầu ra. Nếu HTML được làm sạch đã xóa các thẻ tiêu đề tài liệu, hãy chọn chế độ dữ liệu thô trong Playground hiện tại hoặc một đại diện nguồn được phê duyệt khác.
Phương pháp 2: Lấy HTML thông qua API
Tốt nhất cho những kiểm tra siêu dữ liệu có thể lặp lại trên các URL đã biết.
Bước 1: Bảo vệ thông tin xác thực
Lưu trữ NSTDATA_API_TOKEN ở phía máy chủ và gửi nó dưới dạng x-api-key.
Bước 2: Lấy một trang đại diện
Sử dụng yêu cầu nhanh khởi động truy xuất được tài liệu hóa bên dưới. Nhãn đường đi truy xuất trong tài liệu hiện tại xung đột ở nơi khác, vì vậy hãy xác minh yêu cầu được tạo từ Playground của bạn.
Thiết lập NSTDATA_API_TOKEN trong shell của bạn từ tài khoản Nstdata của bạn, sau đó chạy yêu cầu nhanh khởi động được tài liệu hóa. Tài liệu công khai gán một số lộ trình đồng bộ và bất đồng bộ khác không đồng nhất; hãy so sánh yêu cầu được tạo ra từ Playground của bạn trước khi sử dụng cho sản xuất.
curl --output crawl-response.json --request POST "https://api.nstdata.io/api/v1/crawl/scrape/submit-sync" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/","formats":["html"]}'
Phản hồi được lưu vào crawl-response.json. Kiểm tra các trường lồng nhau data.success, data.status, và data.data.metadata.statusCode trước khi sử dụng bất kỳ nội dung nào đã trả về.
Bước 3: Phân tích và xác minh các thẻ
Đọc HTML hoặc tham chiếu của đối tượng đã trả về, phân tích meta[property], meta[name], và link[rel=canonical], sau đó giải quyết các URL tương đối theo URL trang cuối cùng. Phân biệt các thẻ thiếu với một bản ghi trống.
Lưu một đại diện bao gồm tiêu đề tài liệu dưới dạng page.html; nếu HTML đã làm sạch bỏ qua nó, hãy lấy lại tham chiếu dữ liệu thô đã trả về. Bộ phân tích này giữ lại các giá trị Open Graph lặp lại thay vì ghi đè chúng:
from bs4 import BeautifulSoup from urllib.parse import urljoin import json source_url = "https://example.com/page" # thay bằng URL cuối cùng đã trả về soup = BeautifulSoup(open("page.html", encoding="utf-8").read(), "html.parser") head = soup.head if head is None: raise ValueError("Không có tiêu đề tài liệu; yêu cầu dữ liệu trang thô") tags = {} for tag in head.select("meta[property], meta[name]"): key = tag.get("property") or tag.get("name") tags.setdefault(key.lower(), []).append(tag.get("content", "")) canonical = head.select_one('link[rel="canonical"]') record = { "source_url": source_url, "title": soup.title.get_text(" ", strip=True) if soup.title else None, "description": tags.get("description", [None])[0], "canonical": urljoin(source_url, canonical.get("href")) if canonical else None, "open_graph": {k: [urljoin(source_url, v) if k in {"og:image", "og:url"} else v for v in vals] for k, vals in tags.items() if k.startswith("og:")}, } print(json.dumps(record, ensure_ascii=False, indent=2))
Cài đặt Beautiful Soup với python3 -m pip install beautifulsoup4. So sánh title, canonical, og:title, và og:url với trang trực tiếp; một khóa thiếu vẫn sẽ thiếu thay vì được đoán từ văn bản trong thân.
Phương pháp 3: Kiểm toán một trang web có giới hạn
Tốt nhất cho các danh mục SEO hoặc kiểm tra chất lượng xem trước xã hội.
Bước 1: Đặt ranh giới cho trang web
Chọn maxDepth, maxPages, và các quy tắc bao gồm/loại trừ cho phần công cộng.
Bước 2: Thu thập mọi bản ghi trang
Nộp một cuộc thu thập thông tin trang web, kiểm tra công việc và lấy tất cả các trang kết quả bằng cách sử dụng con trỏ được trả về.
Đối với một công việc trang web, thay thế máy chủ và đường dẫn ví dụ bằng phạm vi đã được chấp thuận của bạn, sau đó nộp một yêu cầu giới hạn:
curl --output crawl-submit.json --request POST "https://api.nstdata.io/api/v1/crawl" \ --header "x-api-key: ${NSTDATA_API_TOKEN}" \ --header "Content-Type: application/json" \ --data '{"url":"https://example.com/docs/","formats":["html"],"maxDepth":2,"maxPages":10,"includeUrls":["*example.com/docs/*"],"excludeUrls":["*example.com/admin/*"],"ignoreQuery":true}'
Sao chép data.id từ crawl-submit.json làm ID thu thập của bạn.
Bước 3: Xuất bảng kiểm toán
Viết một hàng cho mỗi trang chuẩn với URL nguồn, trạng thái HTTP, tiêu đề, mô tả, các trường Open Graph và các cờ xác thực. Xem xét các bản sao và sự không khớp thay vì chọn một thẻ trong im lặng.
Phương pháp 4: Kiểm tra siêu dữ liệu trên một trang tĩnh mà không cần thu thập
Tốt nhất cho một vài trang công cộng khi HTML gốc của chúng đã chứa các thẻ xã hội.
Bước 1: Tải xuống HTML đã được ủy quyền
Sử dụng một trình duyệt hoặc khách HTTP đã được chấp thuận để lưu trang dưới dạng page.html. Xác nhận tệp đã lưu chứa đầu tài liệu và các thẻ og: mong đợi.
Bước 2: Chạy bộ phân tích thẻ
Chạy bộ phân tích Python trong Phương pháp 2 đối với page.html, đặt source_url là URL cuối cùng thực tế đã được tải xuống. Giữ lại các giá trị thẻ lặp lại thay vì ghi đè chúng.
Bước 3: So sánh các trường xem trước trực tiếp
Kiểm tra tiêu đề, URL chuẩn, og:title, og:url, và các điểm đến hình ảnh so với trang. HTML tĩnh có thể khác với đầu tài liệu đã được điều chỉnh bằng JavaScript, vì vậy hãy sử dụng một bản ghi được tạo ra cho các trang như vậy.
Làm Thế Nào Để Bạn Xác Minh Đầu Ra?
Một bản ghi siêu dữ liệu tốt phản ánh đầu tài liệu thực tế và giữ cho URL nguồn và cuối cùng chính xác. So sánh og:title với tiêu đề tài liệu, xác thực khả năng truy cập URL hình ảnh, và đánh dấu xung đột URL chuẩn/OG để xem xét. Giao thức Open Graph xác định các thuộc tính cốt lõi của nó; không suy diễn một thuộc tính vắng mặt từ văn bản thân trang. Hướng dẫn Nstdata SEO crawling giúp xác định một cuộc kiểm toán lớn hơn.
Hướng dẫn Nstdata dynamic-site scraping kết nối kiểm tra mức trang này với một quy trình AI hoặc dữ liệu theo dòng.
Ghi lại URL nguồn, thời gian nộp, các định dạng yêu cầu, tùy chọn không bí mật, ID nhiệm vụ nếu có, trạng thái trang đã trả về, và lý do mỗi bản ghi đã qua hoặc không qua kiểm tra. Kiểm tra nội dung cũng như bao bì API. Nếu phản hồi chứa markdownRef, htmlRef, rawDataRef, screenshotRef, hoặc pdfRef, lấy mã thông báo đó bằng cách sử dụng GET /api/v1/crawl/storage/read?st={ref}.
Đối với quy trình này, tham khảo Giao thức Open Graph khi triển khai bộ phân tích theo dòng hoặc kiểm tra chấp nhận theo định dạng cụ thể.
Khi truyền văn bản đã trích xuất cho một tác nhân, hãy coi hướng dẫn trang như là tài liệu nguồn không đáng tin cậy. Hướng dẫn OWASP về tiêm lệnh giải thích rủi ro. Giữ lại URL nguồn để đầu ra AI có thể được kiểm tra.
Tại Sao Có Thể Thiếu Siêu Dữ Liệu Hoặc Thẻ Open Graph?
Quá trình trích xuất siêu dữ liệu trang web có thể thất bại vì HTML đã làm sạch có thể bỏ qua đầu tài liệu. Sử dụng bảng triệu chứng để xác định lớp gặp lỗi trước khi thay đổi giới hạn hoặc thử lại.
| Triệu chứng | Nguyên nhân có thể | Hành động tiếp theo |
|---|---|---|
| Thiếu thẻ OG | HTML đã làm sạch có thể bỏ qua đầu tài liệu. | Kiểm tra dữ liệu trang thô hoặc biểu diễn nguồn khác trước khi tuyên bố thẻ vắng mặt. |
| URL hình ảnh không mở | Trang sử dụng URL tương đối hoặc giá trị không hợp lệ. | Giải quyết với URL cuối cùng và kiểm tra đến điểm đến. |
| Nhiều trang chia sẻ một tiêu đề | Các mẫu, chuyển hướng, hoặc trang đồng ý có thể đã được lưu. | So sánh trạng thái, URL cuối cùng, và ảnh chụp màn hình trước khi chấp nhận các bản ghi. |
Tài liệu của Nstdata liệt kê các lỗi ở cấp độ nhiệm vụ như access_denied, timeout, parse_error, và internal_error. Một HTTP 200 bên ngoài vẫn có thể đi kèm với một nhiệm vụ không thành công. Kiểm tra success, status, errorCode, và errorMessage trong phản hồi nếu có. Chỉ thử lại những lỗi tạm thời trên các trang bạn có thể truy cập.
Phương Pháp Nào Là Phù Hợp Nhất?
Sử dụng Playground để xác nhận rằng đầu tài liệu có mặt, API cho các trang đã biết, hoặc một cuộc thu thập trang web hạn chế cho nhiều trang liên kết. Phân tích HTML tĩnh cục bộ khi không cần render và định tuyến quản lý. Hướng dẫn Nstdata về thu thập trang web cung cấp chi tiết hơn về lộ trình trang web.
Bạn Nên Làm Gì Sau Lần Chạy Thành Công Đầu Tiên?
Lưu cấu hình đã được chấp thuận và một bản ghi đầu ra có nguồn gốc, sau đó lặp lại trên một tập hợp nhỏ các mẫu trang khác nhau. Tăng phạm vi chỉ sau khi các bản ghi đó vượt qua cùng một kiểm tra chấp nhận.
Câu Hỏi Thường Gặp: Bạn Còn Cần Biết Gì Khác?
H: Phản hồi Crawl có tự động bao gồm các thẻ Open Graph không?
Tài liệu công khai xác nhận thông tin siêu dữ liệu trang như tiêu đề và trạng thái, nhưng không thiết lập các trường OG chuyên dụng. Phân tích các thẻ HTML liên quan và xác minh chúng.
H: Tôi nên sử dụng og:url hay URL chính thức làm ID bản ghi?
Giữ cả hai giá trị và định nghĩa chính sách chuẩn hóa của bạn; đánh dấu sự không đồng ý để xem xét.
H: JavaScript có thể thay đổi siêu dữ liệu không?
Có. Kiểm tra DOM đã được tạo ra và phản hồi thô khi hành vi của thẻ là quan trọng cho kiểm toán của bạn.
H: Việc trích xuất siêu dữ liệu trang web có cần cấu hình proxy riêng với Nstdata Crawl không?
Một yêu cầu Crawl được quản lý tiêu chuẩn không cần các trường Proxy Host, Port, Username, Password hoặc Protocol riêng. Xác nhận bất kỳ tùy chọn proxy tùy chỉnh nào và các khoản phí sử dụng liên quan trong tài khoản của bạn.
H: HTTP 200 có chứng minh rằng kết quả trích xuất siêu dữ liệu trang web là có thể sử dụng không?
Không. Kiểm tra kết quả nhiệm vụ lồng ghép, trạng thái trang, các trường mong đợi và độ trung thực của nội dung trước khi sử dụng nó trong quy trình AI hoặc dữ liệu.





