Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
Trafilatura web scraping để trích bài chính có nguồn

Trafilatura web scraping để trích bài chính có nguồn

Chuyên viên Kỹ thuật ProxyVN 07-10-2026 Đang tính... phút đọc

Trafilatura web scraping nên tách bước tải HTML khỏi bước lấy main text và metadata. Một kết quả dài chưa chứng minh giữ đủ bài, còn kết quả ngắn có thể đã bỏ nhầm nội dung. Bài này dùng trang tin tự tạo có marker và footer nhiễu, xuất JSONL rồi đối chiếu phần được giữ. Cùng ProxyVN kiểm tra đầu vào, đối chiếu kết quả và nhận biết giới hạn trước khi áp dụng.

Trafilatura web scraping trong chuỗi tải và trích nội dung

Trafilatura có chức năng xử lý nội dung web, nhưng bài này chủ động đưa HTML đã tải vào bộ trích. Cách tổ chức giúp kiểm parser trên cùng snapshot mà không phụ thuộc thay đổi mạng. HTTP client hoặc proxy chịu trách nhiệm thu byte trước đó theo quyền truy cập.

Nếu request nhận trang đăng nhập, parser có thể trích được chữ đăng nhập mà không báo lỗi. Output không rỗng vẫn không phải bài cần thu. Vì vậy kiểm status, URL cuối và dấu hiệu loại trang phải nằm trước hoặc đi cùng bước trích nội dung.

Quickstart Trafilatura mô tả API extract trên tài liệu đầu vào. Ví dụ của bài dùng fixture riêng để kiểm kết quả, không gán nó cho một website khách hàng. Phiên bản lab được khóa để việc chạy lại có cơ sở đối chiếu.

Xác định nội dung cần giữ

Main text thường là phần bài mà người đọc cần, nhưng không có định nghĩa duy nhất cho mọi tác vụ. Một dự án muốn giữ chú thích ảnh, dự án khác chỉ cần đoạn văn. Đặt nhãn trước khi đánh giá giúp tránh chọn output theo việc nó dài hơn.

Với trang tin lab, title và ba đoạn trong article là nội dung mục tiêu. Menu và footer marker là nhiễu cần bỏ theo bộ thử. Không có comment thật hoặc dữ liệu tài khoản nên có thể chia sẻ fixture mà không đưa thông tin riêng tư vào gói tái hiện.

Đừng dùng tổng số ký tự làm tiêu chí duy nhất. Một output giữ cả menu có thể dài hơn nhưng kém phù hợp. Ngược lại, một output mất đoạn kết có thể ngắn đẹp mà làm sai ý bài. Cần so các vùng có nhãn.

Trafilatura web scraping với HTML snapshot cố định

Snapshot giữ điều kiện đầu vào không đổi khi điều chỉnh tham số. Lưu hash HTML, nguồn và thời điểm quan sát để nối output với lần thu. Nếu chỉ giữ URL, lần chạy sau có thể đọc một bài đã được sửa rồi tạo một phép so không công bằng.

HTML bài chính và footer nhiễu

HTML bài chính và footer nhiễu

Dựng fixture có nhiễu nhưng đọc được bằng mắt

Trang lab có tiêu đề Laboratory water station update và marker sensor-lab-482 nằm trong phần bài. Footer chứa FOOTER-NOISE-991 để phát hiện nhiễu còn sót. Nội dung là câu chuyện giả lập dùng kiểm parser, không phải báo cáo một trạm hoặc dự án có thật.

Marker cho phép assertion giữ nội dung đích, còn footer marker cho phép assertion loại nhiễu. Hai phép so có mục tiêu khác nhau. Nếu chỉ kiểm marker đích, một parser trả toàn trang vẫn có thể pass; nếu chỉ kiểm không có footer, output rỗng cũng có thể pass.

Bộ mẫu nhỏ nên được bổ sung các bố cục thường gặp ở nguồn mục tiêu. Trang hai cột, bài có bảng và trang quá ngắn có thể tạo hành vi khác. Không công bố độ chính xác của thư viện trên toàn Internet từ một fixture có nhãn đơn giản.

Giữ output ban đầu trước khi chuẩn hóa

Lưu text và metadata parser trả về trước khi bỏ khoảng trắng hoặc ghép đoạn. Một bước chuẩn hóa có thể làm mất cấu trúc mà ứng dụng cần. Nếu chỉ giữ bản cuối, khó biết Trafilatura bỏ đoạn hay chính mã hậu xử lý đã cắt nó.

Các tham số trích phải được ghi theo version. Tên một profile tự đặt như article-v1 nên nối tới cấu hình thực, không chỉ một nhãn trong log. Khi đổi tham số, giữ output của cùng snapshot để so phần thay đổi có thể giải thích.

Không tạo request mới chỉ để kiểm một lựa chọn parser. Dùng snapshot đã được phép giữ giúp giảm tải nguồn và giữ đối chứng. Nếu mục tiêu là đánh giá HTML sau render, cần snapshot cùng loại, không so với HTML tĩnh rồi nhận mọi sai lệch là lỗi parser.

Trafilatura web scraping với text metadata và JSONL

Đầu ra nên vừa có nội dung đọc được vừa giữ nguồn và phương pháp. JSONL thuận tiện cho pipeline theo record vì mỗi dòng là một object. Tuy nhiên việc thư viện trả một chuỗi JSON không có nghĩa schema nội bộ đã đủ cho mọi downstream.

Ví dụ trích từ tệp local

Mã dưới cần news.html là fixture hoặc snapshot đã thu hợp lệ. URL truyền vào chỉ cung cấp ngữ cảnh nguồn, không tự khiến extract tải trang đó. Kết quả None được xử lý riêng thay vì biến thành một record text rỗng được tính thành công.

from pathlib import Path
import json, hashlib, trafilatura
html = Path('news.html').read_text(encoding='utf-8')
result = trafilatura.extract(html, url='http://lab.invalid/news',
    output_format='json', with_metadata=True, include_comments=False)
if result is None:
    raise ValueError('No extraction result for this fixture')
data = json.loads(result)
row = {'source_url': 'http://lab.invalid/news',
       'html_sha256': hashlib.sha256(html.encode('utf-8')).hexdigest(),
       'method': 'trafilatura-lab', 'extraction': data}
Path('news.jsonl').write_text(
    json.dumps(row, ensure_ascii=False) + '\n', encoding='utf-8')

Hash trong ví dụ được tính trên chuỗi đã đọc rồi encode lại, phù hợp fixture UTF-8 đã biết. Nếu cần hash raw HTTP, tính trên byte nguồn trước decode và giữ trường tên khác. Không nhận hai phép hash ở hai ranh giới là bằng chứng tương đương về byte tải.

Core functions là nguồn đối chiếu tham số. include_comments được đặt rõ vì nhiệm vụ mẫu chỉ lấy bài chính. Nếu dự án cần comment, tạo nhánh và bộ nhãn riêng thay vì bật thêm rồi giữ nguyên số liệu chất lượng cũ.

Metadata thiếu không phải nội dung để tự điền

Title, author và date phụ thuộc những gì nguồn công bố và thuật toán nhận diện. Một trường null cần được giữ theo schema hoặc trạng thái thiếu. Không lấy tên domain làm tác giả hoặc lấy ngày chạy script làm ngày xuất bản chỉ để bảng đủ cột.

Trong fixture đã chạy, title được lấy đúng còn author và date không có giá trị công bố phù hợp trong output. Đây là kết quả có thể giải thích từ mẫu, không phải lỗi mạng. Giữ nguyên trạng thái thiếu sẽ trung thực hơn tạo tác giả giả.

Một trường thời gian kỹ thuật như filedate không được gán sang publication date mà không hiểu ý nghĩa API. Tên gần giống không tạo cùng ngữ nghĩa. Schema nội bộ cần có observed_at riêng nếu dự án muốn ghi thời điểm crawler xử lý.

Trafilatura web scraping và kiểm phần bị mất

Đánh giá cần nhìn cả nội dung được giữ và bị bỏ. Một bộ trích main text có thể loại menu tốt nhưng đồng thời mất bảng hoặc đoạn ngắn. Vì thế cần tập nhãn ở mức đoạn hoặc vùng mà tác vụ sử dụng.

Đối chiếu phần được giữ và bị mất

Đối chiếu phần được giữ và bị mất

Bảng: Trafilatura web scraping và kiểm phần bị mất

Phép kiểm

Kỳ vọng fixture

Điều chưa chứng minh

Marker bài

sensor-lab-482 còn trong text

Mọi câu đều được giữ

Footer marker

FOOTER-NOISE-991 không còn

Mọi loại nhiễu đều bị loại

Title

Khớp tiêu đề mẫu

Metadata của mọi nguồn đúng

JSONL đọc lại

Object và nguồn còn nguyên

Dữ liệu production đầy đủ

Nhãn thủ công cần độc lập với output

Trước khi chạy, xác định đoạn nào thuộc bài và đoạn nào là nhiễu. Nếu sửa nhãn theo kết quả parser, phép đo sẽ không còn khả năng phát hiện lỗi. Giữ các ca bất đồng để làm rõ mục tiêu thay vì chỉ chọn những trang công cụ làm tốt.

Với một tập nhỏ, có thể so từng đoạn có nhãn và ghi lý do bị mất. Với tập lớn hơn, cần phương pháp lấy mẫu và chỉ số phù hợp. Không công bố phần trăm precision hoặc recall khi chưa có tập chuẩn và cách tính được thực hiện.

Một marker còn nguyên là kiểm chức năng hẹp. Nó hữu ích để bắt hồi quy nhưng không thay đánh giá toàn bài. Bản hướng dẫn giữ rõ hai mức này để người đọc không nhận nhầm vài assertion là benchmark chất lượng tổng thể.

Nội dung ngắn cần một chính sách riêng

Trang có rất ít chữ có thể không phù hợp với heuristic chọn phần bài. Nếu tác vụ thu thông báo ngắn, cần thêm fixture ngắn và expected output riêng. Không ép mọi trang thành bài dài để công cụ trả kết quả.

Một output None hoặc quá ngắn cần được phân loại theo đầu vào. Nó có thể là trang không có bài, snapshot sai hoặc nội dung mục tiêu thật bị bỏ. Giữ HTML cùng lý do để người vận hành xác định, không tự retry mạng mãi cho một input cố định.

Nếu cần fallback, ghi rõ công cụ hoặc quy tắc được dùng. Một chuỗi lấy từ toàn trang không có cùng mức chất lượng với main text đã kiểm. Output nên giữ method và trạng thái fallback để downstream biết sự khác biệt.

Trafilatura web scraping với bảng liên kết và comment

Các tùy chọn bổ sung làm thay đổi phạm vi nội dung đầu ra. Bật mọi thứ không tự tạo dữ liệu tốt hơn. Chọn theo tác vụ rồi kiểm các phần đó trên fixture có nhãn.

Bảng và liên kết cần giữ ngữ nghĩa

Nếu bảng chứa thông tin cần dùng, kiểm hàng cột có còn đủ ý nghĩa trong định dạng xuất. Text liền có thể giữ số nhưng mất quan hệ với nhãn. Tác vụ dữ liệu bảng có thể cần bước riêng thay vì chỉ nối mọi ô thành một chuỗi.

Liên kết có thể là nguồn trích dẫn hoặc chỉ điều hướng. Nếu giữ URL, phân biệt nó với text hiển thị và resolve theo ngữ cảnh thích hợp. Không tải mọi link mà parser trả nếu phạm vi crawl chỉ yêu cầu nội dung của trang hiện tại.

Ảnh cũng có thể mang chú thích hoặc thông tin phụ. Bộ lab chỉ kiểm main text và metadata cơ bản, không nghiệm thu trích ảnh. Nếu bật include_images hoặc một tùy chọn liên quan, cần kiểm shape output và quyền sử dụng tài nguyên.

Comment là một nguồn dữ liệu khác phần bài

Comment có tác giả, thời gian và ngữ cảnh riêng theo nguồn. Trộn nó vào main text có thể làm bộ tìm kiếm hoặc chống trùng đánh giá sai bài. Nếu nhiệm vụ chỉ phân tích nội dung biên tập, giữ include_comments false một cách có chủ đích.

Nếu nhiệm vụ cần comment được phép thu, lưu nó ở trường riêng cùng provenance và chính sách dữ liệu phù hợp. Không dùng kết quả chất lượng của bộ bài không comment để chứng nhận nhánh mới. Tập nhãn và ranh giới nội dung đã thay đổi.

Với dữ liệu nhạy cảm, chỉ giữ trường thực sự cần theo nhiệm vụ. Fixture tự tạo không cần email, tài khoản hoặc nội dung người dùng thật. Đây là lý do có thể tái hiện lỗi parser mà không chia sẻ snapshot riêng tư của một phiên đăng nhập.

Trafilatura web scraping trong pipeline có proxy

Proxy là một lựa chọn tuyến truyền của HTTP client, không phải tham số sửa main text. Pipeline nên lưu response trước rồi cho parser chạy trên snapshot. Khi có lỗi, có thể kiểm cùng input mà không phải tiếp tục gửi request.

Snapshot nối với phương pháp trích

Snapshot nối với phương pháp trích

Kiểm chất lượng response trước parser

Ghi status, Content-Type, URL cuối, kích thước và hash raw. Nếu nguồn trả trang xác thực hoặc thông báo hạn chế, giữ trạng thái đó theo chính sách. Không gọi một output từ trang lỗi là bài đã thu chỉ vì công cụ tìm được vài đoạn văn.

HTML tĩnh có thể thiếu nội dung do trang cần render. Đánh giá nhu cầu trình duyệt theo tác vụ và quyền truy cập, không thêm công cụ nặng mặc định. Nếu dùng render, lưu dấu vết loại snapshot để không so nó với response tĩnh như thể điều kiện giống nhau.

Khi mua proxy cho tầng tải, mô tả yêu cầu tuyến và kiểm bằng endpoint được phép. Độ đúng của parser vẫn phải được đánh giá bằng bộ nhãn nội dung. Bài không khẳng định một loại proxy làm Trafilatura trích chính xác hơn.

Checkpoint gắn với snapshot và phương pháp

Một record được xử lý nên nối hash snapshot với version extractor và profile. Nếu nâng parser, có thể chạy lại trên cùng nguồn để so. Đừng dùng URL đơn làm khóa duy nhất nếu cần giữ lịch sử nhiều phiên bản của một bài.

Khi ghi JSONL, dùng tệp tạm và cơ chế công bố phù hợp với pipeline. Đọc lại các dòng để kiểm object không bị cắt hoặc escape sai. Một tệp tồn tại chưa đủ chứng minh mọi record đã được ghi hoàn tất.

Nếu nhiều worker cùng xử lý một snapshot, cần khóa hoặc cơ chế chống trùng output theo thiết kế lưu. Không giải quyết bằng cách xóa mọi record cùng URL mà không xét version. Snapshot và phương pháp có thể tạo các bản kết quả đều cần giữ để đánh giá.

Trafilatura web scraping và kết quả lab đã quan sát

Trên fixture trang tin tự tạo, phiên bản 2.3.1 giữ marker bài và không giữ marker footer trong output text. Độ dài text của đúng mẫu là bảy trăm bảy mươi chín ký tự theo phép đếm của bộ thử. Con số này không phải năng lực hoặc độ chính xác của thư viện trên nguồn khác.

Kết quả lab và ca mở rộng

Kết quả lab và ca mở rộng

Title đúng và trường còn thiếu

JSON output giữ title mẫu cùng source URL được truyền. Author và date chưa có dữ liệu phù hợp trong mẫu nên được giữ thiếu. Kiểm này xác nhận shape output và cách pipeline cần đối xử với metadata null, không chứng minh công cụ luôn nhận đúng ngày bài.

Text và raw_text trong output có cách trình bày khác nhau theo thư viện. Nếu downstream cần xuống dòng để giữ đoạn, chọn trường phù hợp rồi khóa hợp đồng. Không tự thay bằng trường dài hơn mà chưa kiểm cấu trúc.

Fingerprint nội bộ mà thư viện trả không nên được gọi là SHA-256 của HTML. Nó có mục đích và cách tính theo công cụ. Nếu cần hash nguồn cho provenance, tự tính trên byte nguồn theo schema riêng và đặt tên rõ.

Những ca cần thêm trước production

Thêm bài có đoạn ngắn cuối, bảng và chú thích ảnh để xem phần nào bị mất. Thêm trang sản phẩm không phải bài để kiểm cách phân loại đầu vào. Thêm trang đăng nhập và trang lỗi để bảo đảm pipeline không đánh chúng thành thành công nội dung.

Chạy một ca có comment và một ca không có nếu tác vụ cần nhánh đó. So bộ nhãn theo cùng mục tiêu, không chỉ so số ký tự. Nếu thêm fallback, báo riêng phương pháp để các chỉ số chất lượng không bị trộn.

Tài liệu dự án Trafilatura cùng json của Python giúp đối chiếu API và cách xuất object. Những nguồn này không thay cho phép kiểm trên dữ liệu đại diện của người dùng.

Điều kiện bàn giao

Giữ fixture, expected marker, profile, dependency version và mẫu JSONL đã đọc lại. Ghi các trạng thái None, partial hoặc fallback theo schema. Người nhận cần biết những phần đã thử và những nhánh còn chờ thay vì chỉ nhìn một thông báo extract thành công.

Khi nguồn đổi giao diện, so snapshot và output trước khi chỉnh tham số. Nếu HTML đã thiếu bài, sửa tầng thu. Nếu bài có trong snapshot nhưng bị bỏ, điều tra extractor. Nếu output đúng nhưng bảng cuối thiếu, kiểm bước chuẩn hóa và lưu.

Trafilatura web scraping với bảng nhãn theo đoạn

Để đánh giá sâu hơn marker, chia fixture thành các đoạn mục tiêu và vùng nhiễu đã biết. Gán ID cho từng đoạn trong bảng tham chiếu, giữ text nguyên văn cùng loại vùng. Sau trích, đối chiếu đoạn để biết phần nào được giữ đủ, mất một phần hoặc lẫn thêm nhiễu.

Tách độ bao phủ với độ sạch

Độ bao phủ trả lời có giữ đủ nội dung cần dùng hay không. Độ sạch trả lời có loại được những phần ngoài mục tiêu hay không. Một output toàn trang có thể có độ bao phủ cao nhưng còn nhiều nhiễu; output rỗng có thể không có nhiễu nhưng không có giá trị cho tác vụ.

Nếu tính chỉ số theo token, nêu tokenizer và cách chuẩn hóa dùng cho phép so. Không thay định nghĩa token giữa các lần chạy. Tiếng Việt có từ ghép nhiều tiếng nên một phép split theo khoảng trắng chỉ là đơn vị kỹ thuật, chưa phải bộ phân tích từ ngữ nghĩa.

So bằng tập token có thể bỏ mất số lần lặp và thứ tự. Hai câu đảo thứ tự vẫn có tập từ giống nhau. Vì vậy một chỉ số token đơn cần được bổ sung bằng kiểm đoạn hoặc đọc mẫu khi nhiệm vụ quan tâm mạch nội dung.

Không lấy số liệu benchmark của một tập khác làm kết quả cho dữ liệu dự án. Bộ trang tin tự tạo chỉ đủ kiểm một số thuộc tính chức năng. Nếu muốn công bố một tỷ lệ chất lượng, phải có tập chuẩn, phương pháp tính và output thực của tập đó.

Giữ các ca thất bại trong báo cáo thay vì bỏ khỏi mẫu đánh giá. Một trang ngắn mà công cụ trả None là thông tin về phạm vi sử dụng. Xóa nó khỏi mẫu sau khi thấy kết quả sẽ khiến chỉ số không phản ánh công việc thực cần xử lý.

Nhận diện lỗi ghép và lỗi trùng đoạn

Một đoạn có thể xuất hiện hai lần do HTML công bố bản desktop và mobile cùng lúc. Nếu output lặp đoạn, số ký tự tăng nhưng nội dung không đầy đủ hơn. Bảng nhãn theo đoạn giúp kiểm số lần xuất hiện thay vì chỉ kiểm marker có mặt.

Ngược lại, hai đoạn có cùng một câu mở đầu nhưng phần sau khác nhau không được tự gộp bằng tiêu chí quá ngắn. Giữ đoạn nguyên và so phạm vi đủ để phân biệt. Quy tắc chống trùng nội dung nên được kiểm riêng với quyết định chọn main text.

Nếu bật một tùy chọn deduplicate của công cụ, chạy lại tập có câu lặp mang ý nghĩa để xem tác động. Ví dụ một điều khoản được nhắc ở hai phần có thể là nội dung cần giữ. Không nhận mọi lặp là boilerplate chỉ vì nó xuất hiện nhiều lần.

Khi text bị ghép mất dấu phân cách, người đọc có thể khó phân biệt tiêu đề với thân bài. Chọn định dạng output và quy tắc hậu xử lý theo mục tiêu. Đừng làm phẳng xuống dòng quá sớm nếu downstream còn cần phân đoạn để trích dẫn.

Một bảng lỗi nên ghi loại như thiếu đoạn, lặp đoạn, lẫn footer hoặc sai metadata. Phân loại này giúp chọn sửa tham số, sửa extractor hay sửa schema. Một cột fail duy nhất không đủ để người tiếp nhận biết nên điều tra nơi nào.

Trafilatura web scraping khi so phiên bản xử lý

Nâng thư viện hoặc profile có thể đổi output từ cùng HTML. Đây là cơ hội kiểm hồi quy bằng snapshot cố định. Không cần gửi lại request thật cho từng lựa chọn nếu mục tiêu đang là so thuật toán trích.

Giữ hai chiều định danh của output

Một chiều là định danh nguồn snapshot, chẳng hạn hash raw HTML cùng URL. Chiều còn lại là định danh phương pháp, gồm version thư viện và profile. Hai chiều giúp phân biệt website đổi nội dung với pipeline đổi cách diễn giải.

Nếu dùng hash chuỗi sau decode như ví dụ nhỏ, tên trường cần thể hiện ranh giới đó. Muốn giữ raw_sha256, tính trên byte trước mọi chuẩn hóa. Một chuỗi được đọc rồi encode lại có thể không khôi phục byte nguyên gốc nếu codec hoặc normalization đã đổi.

Khi so hai output, báo những field thay đổi thay vì chỉ một hash khác. Title đổi, date từ null sang giá trị và text mất đoạn là ba loại tác động khác nhau. Người biên tập cần nhìn phần thay đổi có ý nghĩa để quyết định có chấp nhận phiên bản mới.

Không tự chọn output dài hơn làm bản thắng. Nó có thể giữ thêm nhiễu hoặc lặp đoạn. Áp cùng bảng nhãn cho cả hai version, đồng thời giữ các giới hạn chưa có nhãn để kết luận không vượt dữ liệu đã kiểm.

Một nâng cấp chỉ được nghiệm thu trên những loại trang đã thử. Nếu chưa có trang bảng hoặc comment, ghi chúng ngoài phạm vi. Điều này giúp nhóm vận hành biết việc cần bổ sung khi một nguồn mới có cấu trúc khác xuất hiện.

Đọc metadata theo từng vai trò

Trong fixture, source là URL được người gọi truyền vào, còn source-hostname mô tả host tương ứng trong output. Chúng phục vụ provenance của lần trích, không tự chứng minh URL đã được parser tải. Bộ extract đang chạy trên tệp local đã có.

Title là trường có nhãn để so trong mẫu. Author và date thiếu cần tiếp tục giữ thiếu theo schema. Nếu downstream bắt buộc ngày xuất bản, record này có thể cần trạng thái chưa đủ thay vì lấp bằng filedate của quá trình xử lý.

Fingerprint nội bộ có thể hỗ trợ công việc theo thiết kế thư viện, nhưng không nên dùng làm định danh raw snapshot không đổi. Giữ một hash nguồn độc lập với tên thuật toán rõ. Hai giá trị có thể cùng xuất hiện vì trả lời hai câu hỏi khác nhau.

Trường text phục vụ nội dung trích, còn một trường raw_text trong output thư viện không nhất thiết là raw HTTP. Không dựa vào chữ raw để suy ra ranh giới byte. Schema bàn giao nên mô tả ý nghĩa cụ thể của các trường được giữ.

Đọc lại record JSONL bằng thư viện JSON và so những field này giúp bắt lỗi đổi tên hoặc mất null. Thao tác ghi tệp chỉ là một bước kỹ thuật. Bản dữ liệu được nghiệm thu cần giữ đúng nguồn, trạng thái và nội dung mà người dùng downstream đã thống nhất.

Main text cần được đối chiếu với phần bài có nhãn; output dài hoặc không rỗng chưa chứng minh đã giữ đủ nội dung.

Anh em hãy lưu dữ liệu mẫu cùng cấu hình và kết quả đối chiếu để lần cập nhật sau có cơ sở kiểm lại. Tham khảo thêm tại Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam. Bắt đầu từ phạm vi nhỏ và tiêu chí rõ ràng khi triển khai Trafilatura web scraping.

TIN TỨC LIÊN QUAN