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!
trích Microdata bằng Python giữ đúng scope và itemref

trích Microdata bằng Python giữ đúng scope và itemref

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

trích Microdata bằng Python khác việc tìm mọi phần tử có itemprop rồi lấy chữ. Thuộc tính có thể thuộc một thực thể lồng bên trong hoặc được nối từ ngoài cây con. Bài này dùng Product có Offer và SKU qua itemref, kiểm quan hệ cha con trước khi chuẩn hóa đầu ra. 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.

trích Microdata bằng Python cần giữ ranh giới thực thể

Microdata gắn dữ liệu có cấu trúc vào các phần tử HTML. Một vùng itemscope tạo phạm vi thực thể, còn itemprop mô tả thuộc tính trong ngữ cảnh đó. Nếu gom mọi itemprop trên trang vào một dict, giá của Offer có thể bị gán nhầm thành thuộc tính trực tiếp của Product.

Lỗi này thường không làm parser ném exception. Output vẫn có tên, giá và mã hàng nên trông có vẻ đầy đủ. Chỉ khi trang có nhiều thực thể hoặc thuộc tính trùng tên, mối quan hệ sai mới bộc lộ trong dữ liệu sử dụng.

Bộ lab dùng sản phẩm tự tạo tên Lab cup, Offer có giá 12.50 USD và SKU LAB-1 được nối qua itemref. Các giá trị không phải dữ liệu bán hàng thật. Kỳ vọng đã biết giúp kiểm parser giữ đúng chỗ của từng trường.

Microdata khác JSONLD và selector thuần

JSON-LD thường được công bố trong một cấu trúc JSON, còn Microdata gắn với cây HTML và các thuộc tính liên quan. Selector HTML thuần có thể lấy đúng một đoạn chữ nhưng chưa giải thích nó thuộc thực thể nào. Chọn công cụ theo ngữ nghĩa cần giữ, không chỉ theo việc tìm được một giá.

HTML Standard về Microdata là nguồn chuẩn để đối chiếu mô hình. Bài này dùng thư viện extruct trên fixture hẹp và kiểm output thực. Không coi một lần trích Product thành công là chứng nhận thư viện xử lý mọi ca của chuẩn.

Tầng tải HTML qua HTTP hoặc proxy nằm trước bước parser. extruct nhận HTML đã có, không cần credentials proxy để hiểu itemscope. Khi một trường thiếu, kiểm snapshot và cấu trúc scope trước khi thay tuyến mạng.

trích Microdata bằng Python với fixture Product và Offer

Fixture nên có ít nhất một scope lồng để bộ kiểm phát hiện lỗi làm phẳng. Thêm một thuộc tính ngoài cây qua itemref giúp kiểm parser không chỉ duyệt descendants đơn giản. Giữ HTML ngắn để người biên tập có thể tự xác định expected output.

Product chứa Offer và SKU qua itemref

Product chứa Offer và SKU qua itemref

Cấu trúc dữ liệu tự tạo

Vùng Product chứa name và một phần tử vừa mang itemprop offers vừa tạo itemscope Offer. Giá và currency nằm trong scope Offer. SKU được đặt ở phần tử ngoài Product, được tham chiếu bởi ID extra trong fixture.

<div itemscope itemtype="https://schema.org/Product" itemref="extra">
  <span itemprop="name">Lab cup</span>
  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
    <meta itemprop="price" content="12.50">
    <meta itemprop="priceCurrency" content="USD">
  </div>
</div>
<div id="extra"><span itemprop="sku">LAB-1</span></div>

Expected output không đặt price ở cùng cấp name của Product. Nó phải nằm trong properties của Offer dưới offers. SKU vẫn thuộc Product dù phần tử chứa nó nằm ngoài vùng HTML con trực tiếp; đó là phần giá trị riêng của ca itemref.

Nếu một parser chỉ dùng scope.cssselect('[itemprop]'), nó có thể lấy được cả price nhưng gán sai ngữ cảnh. Nếu nó chỉ đọc con trực tiếp, nó có thể bỏ các thuộc tính lồng trong wrapper trình bày. Hai cách đơn giản này đều cần phản ví dụ để thấy giới hạn.

Đọc bằng extruct và kiểm quan hệ

Ví dụ Python cần tệp fixture.html chứa HTML phía trên và extruct đã cài trong môi trường riêng. Tham số syntaxes giới hạn tác vụ vào Microdata. base_url cung cấp ngữ cảnh URL cho dữ liệu có đường dẫn tương đối theo khả năng thư viện.

from pathlib import Path
import extruct
html = Path('fixture.html').read_text(encoding='utf-8')
result = extruct.extract(html, base_url='http://lab.invalid/',
                         syntaxes=['microdata'])
product = result['microdata'][0]
props = product['properties']
assert props['name'] == 'Lab cup'
assert props['sku'] == 'LAB-1'
assert 'price' not in props
offer = props['offers']
assert offer['properties']['price'] == '12.50'
assert offer['properties']['priceCurrency'] == 'USD'

Trong output fixture đã quan sát, các giá trị đơn được trả dưới dạng scalar hoặc object, không phải mọi trường đều là list. Vì vậy assertion dùng đúng dạng đã chạy. Khi hỗ trợ nhiều giá trị lặp, thêm lớp chuẩn hóa cardinality có kiểm thay vì mặc định index không cho mọi trường.

Mã nguồn và README extruct là nguồn đối chiếu API. Khóa phiên bản thư viện cùng fixture để người nhận biết hình dạng output được kiểm ở đâu. Thay package rồi giữ nguyên giả định về cardinality có thể gây lỗi downstream.

trích Microdata bằng Python và cách lấy giá trị thuộc tính

Không phải giá trị nào cũng là text_content của phần tử. Một thẻ meta dùng content; một liên kết hoặc ảnh có giá trị URL theo quy tắc phù hợp. Parser cần hiểu loại phần tử thay vì chỉ đọc chữ nhìn thấy trên trang.

Giá trị hiển thị và giá trị công bố

Trong fixture, meta price không có chữ con nhưng content chứa 12.50. Một selector lấy text sẽ trả rỗng dù dữ liệu có mặt. Đây là lỗi trích xuất, khác với nguồn không công bố giá hoặc HTTP client tải thiếu tài liệu.

Với liên kết, nhãn chữ có thể là “Xem sản phẩm” trong khi href là giá trị URL cần giữ. Với ảnh, alt là mô tả còn src mang đường dẫn theo ngữ cảnh thuộc tính. Không tự thay một trường bằng chữ hiển thị nếu quy tắc dữ liệu yêu cầu giá trị khác.

Tài liệu itemprop của MDN giúp đối chiếu các dạng sử dụng. Khi thêm một loại phần tử vào nguồn thật, tạo fixture cùng expected output. Không cho pass chỉ vì một trường bất kỳ không còn rỗng.

Giữ raw value trước khi diễn giải

Một chuỗi price cần được chuẩn hóa ở bước sau theo hợp đồng số. Parser Microdata xác định nơi lấy chuỗi, không quyết định dấu phẩy là hàng nghìn hay thập phân. Giữ raw value và lỗi chuẩn hóa riêng giúp điều tra đúng lớp.

Một URL tương đối cần được nối theo ngữ cảnh phù hợp, có thể chịu ảnh hưởng base của tài liệu theo công cụ. Ghi URL nguồn và URL đã resolve riêng nếu cần truy vết. Đừng nối chuỗi bằng dấu gạch chéo mà không kiểm đường dẫn cha, query hoặc fragment.

Khi giá trị không hỗ trợ, giữ trạng thái unknown hoặc lỗi theo schema dự án. Không biến object thành str rồi xem đó là một tên hoặc giá hợp lệ. Một kiểu dữ liệu sai phải còn nhìn thấy ở bước kiểm để không đi sâu vào hệ thống chính.

trích Microdata bằng Python với itemref ngoài cây con

itemref nối các phần tử có ID trong cùng tài liệu vào phạm vi dữ liệu theo quy tắc chuẩn. Nó không phải lệnh tải một trang khác từ Internet. Sự khác biệt này quan trọng khi thiết kế provenance và giới hạn truy cập mạng của parser.

Tham chiếu ngoài cây con

Tham chiếu ngoài cây con

Bảng: trích Microdata bằng Python với itemref ngoài cây con

Ca fixture

Kỳ vọng

Lỗi cần bắt

Offer lồng trong Product

Giá nằm dưới offers

Làm phẳng sai scope

SKU qua itemref extra

Product có LAB-1

Chỉ đọc descendants

meta có content

Có chuỗi giá

Chỉ lấy chữ con

Nhiều itemprop cùng tên

Giữ cardinality phù hợp

Ghi đè giá trị trước

Kiểm tham chiếu có và thiếu

Ca có ID extra xác nhận SKU được nối về Product. Thêm một ca không có phần tử ID đó để xem thư viện trả gì và pipeline ghi trạng thái ra sao. Không tự tạo giá trị SKU từ chính chuỗi itemref vì đó chỉ là tên tham chiếu.

Nếu tài liệu có ID trùng, cần đánh giá hành vi parser và coi đây là input có thể mơ hồ. Đừng sửa HTML bằng cách xóa một phần tử rồi báo nguồn gốc vẫn nguyên vẹn. Nếu có adapter sửa, giữ bản gốc và version của phép sửa.

Một custom parser còn cần xử lý vòng tham chiếu và tránh duyệt lặp theo chuẩn. Bài không đề xuất tự viết đầy đủ bộ máy này từ vài selector. Dùng thư viện có phạm vi hỗ trợ rõ, rồi kiểm những mẫu nguồn mà dự án thực cần.

Provenance không chỉ là path của scope cha

Một property qua itemref có nguồn phần tử nằm ngoài subtree của Product. Nếu chỉ lưu path của Product, người nhận có thể không tìm thấy SKU tại đó. Giữ thêm vị trí property hoặc tham chiếu ID khi thiết kế output cần đối chiếu từng trường.

Kết quả extruct cơ bản không tự cung cấp mọi dấu vết DOM theo nhu cầu dự án. Có thể cần bước ghi snapshot và adapter truy vết riêng. Nêu rõ giới hạn thay vì tự gán một node_path giả không lấy từ cây đã parse.

Với gói dữ liệu nhỏ, giữ HTML fixture và mô tả quan hệ đã biết là đủ cho kiểm cơ chế. Với dữ liệu nhiều trang, provenance cần được tự động hóa theo schema ổn định. Không phụ thuộc việc người biên tập nhớ cấu trúc trang vào ngày thu.

trích Microdata bằng Python khi có nhiều thực thể

Một trang có thể chứa nhiều Product, Organization, BreadcrumbList hoặc scope khác. Pipeline cần chọn kiểu thực thể theo nhiệm vụ và giữ quan hệ của từng item. Một dict chung theo tên thuộc tính sẽ làm mất ranh giới ngay từ đầu.

Phân biệt item độc lập với item lồng

Offer lồng trong Product mang ý nghĩa quan hệ offers trong fixture. Một Offer độc lập khác trên trang không nên tự được gán vào Product đầu tiên. Nếu nguồn dùng itemid hoặc quan hệ khác, cần một quy tắc nối được kiểm thay vì suy theo thứ tự xuất hiện.

Một item có itemtype chưa biết vẫn có thể là dữ liệu hợp lệ ngoài phạm vi dự án. Phân loại không hỗ trợ khác với lỗi parser. Khi báo số Product thu được, không tính các item ngoài mục tiêu như thể chúng là sản phẩm lỗi.

Tài liệu Product của Schema.org giúp kiểm ý nghĩa thực thể mục tiêu. Microdata là cách biểu diễn trong HTML; vocabulary là một lớp ngữ nghĩa khác. Đọc được itemscope không tự chứng minh mọi thuộc tính của Product đã đúng schema.

Không dùng tên làm khóa duy nhất

Hai sản phẩm có thể cùng name nhưng khác mã hoặc người bán. Nếu cần khóa nghiệp vụ, ưu tiên định danh nguồn được công bố và phạm vi thích hợp. Nếu không có, giữ khóa snapshot kỹ thuật và ghi rõ không phải ID vĩnh viễn.

itemid, nếu được nguồn công bố, cần được giữ theo ngữ cảnh của nó và kiểm trước khi dùng nối lịch sử. Một giá trị trông giống URL không bắt buộc là đường dẫn cần tải. Không biến mọi ID thành một request bổ sung ngoài phạm vi crawl ban đầu.

Khi nguồn không ổn định, chống trùng và nối phiên bản nên là bước riêng sau trích xuất. Giữ danh sách item gốc để có thể sửa quy tắc nối mà không tải lại mọi trang. Việc làm phẳng quá sớm sẽ khiến quan hệ khó phục hồi.

trích Microdata bằng Python và chuẩn hóa schema

Output thư viện cần một hợp đồng nội bộ trước khi đưa vào bảng dữ liệu chính. Hợp đồng nêu rõ trường đơn, trường nhiều giá trị và cách biểu diễn item con. Không để downstream đoán kiểu theo record đầu tiên của batch.

Schema giữ cardinality và item con

Schema giữ cardinality và item con

Cardinality cần được kiểm ở từng trường

Một field trong fixture có giá trị đơn nhưng nguồn thật có thể lặp. Nếu chuẩn hóa về list, làm có chủ đích và giữ thứ tự khi nó có ý nghĩa theo đầu ra. Nếu chỉ cho phép một giá trị, nhiều giá trị cần lỗi hoặc quy tắc chọn được ghi rõ.

Không lấy phần tử đầu để né một TypeError mà chưa xem vì sao có nhiều giá trị. Hai giá có thể là hai Offer, hai điều kiện hoặc input mâu thuẫn. Quy tắc chọn là quyết định dữ liệu, không chỉ một thao tác sửa kiểu trong Python.

Với item con, giữ object có type và properties hoặc một cấu trúc tương đương có schema. Đừng biến nó thành chuỗi repr vì sẽ mất khả năng kiểm trường. Nếu cần flatten, tạo bảng con và khóa liên kết về item cha.

Tách thiếu dữ liệu với giá trị rỗng

Không có property, property có chuỗi rỗng và property có dữ liệu không hợp lệ là ba trạng thái khác nhau. Chúng có thể cần chính sách riêng ở bước xuất. Tự điền cùng một giá trị mặc định sẽ làm mất thông tin về chất lượng nguồn.

Với price, số không không thay cho thiếu. Với SKU, một chuỗi rỗng không phải một mã hàng hợp lệ để chống trùng. Ghi lý do theo field và giữ record quarantine cùng nguồn để người vận hành sửa có mục tiêu.

Nếu cần dữ liệu đầy đủ mới công bố, kiểm số item được nhận, số bị loại và số có lỗi một phần. Các tổng cần đối soát được. Không báo “không có sản phẩm” khi thực chất toàn bộ item đã bị parser hoặc validator từ chối.

trích Microdata bằng Python trong pipeline crawl

Parser chạy trên snapshot nên có thể kiểm độc lập với mạng. Tầng tải giữ status, URL cuối, hash và encoding; tầng Microdata giữ item cùng lỗi cấu trúc. Mối nối snapshot giúp điều tra mà không phải gửi lại mọi request.

Quan sát đúng nơi dữ liệu thay đổi

Nếu sau một lần website đổi giao diện số Offer giảm, so HTML trước và sau bằng fixture có quyền sử dụng. Có thể markup đã đổi, cũng có thể bước decode hoặc render khác. Đừng chỉ thay selector mà bỏ qua nguồn snapshot đã thay.

Một bản HTML trang đăng nhập có thể vẫn có vài item metadata không liên quan. Vì vậy kiểm loại response và ngữ cảnh mục tiêu trước khi xuất dữ liệu. Việc extruct trả một object không chứng minh crawler đã nhận đúng trang sản phẩm.

Khi mua proxy cho tầng tải, đánh giá tuyến và quyền truy cập riêng. Microdata không tự trở nên đúng hơn nhờ thay IP. Bộ thử của bài chỉ xử lý HTML tự tạo, không kiểm gateway thương mại hoặc dữ liệu tài khoản thật.

Quản lý phiên bản parser và output

Ghi version extruct cùng các dependency quan trọng và schema nội bộ. Nếu thư viện thay hình dạng cardinality, bộ chuyển đổi cần phát hiện trước khi dữ liệu vào bảng chính. Một assertion nhỏ trên fixture Offer lồng có thể bắt thay đổi mà kiểm số record đơn thuần bỏ qua.

Mỗi lần nâng cấp, chạy ca có itemref, meta content và nhiều giá trị. So quan hệ, kiểu và raw value, không chỉ số item. Giữ báo cáo trước đó để người nhận biết thay đổi đến từ source hay parser.

Nếu dùng adapter theo website, đặt version riêng với thư viện. Hai nguồn có thể cần quy tắc chuẩn hóa khác nhau dù dùng chung extruct. Không giấu sửa đặc thù nguồn vào một hàm chung rồi làm thay đổi output của mọi nguồn khác.

trích Microdata bằng Python và ma trận nghiệm thu

Ma trận tốt cần có phản ví dụ về scope. Chỉ kiểm tên sản phẩm sẽ bỏ qua giá bị đặt sai cấp. Bộ fixture của bài đặt đủ trường để một parser làm phẳng hoặc bỏ itemref không thể đạt cùng expected output.

Ma trận scope và dữ liệu thiếu

Ma trận scope và dữ liệu thiếu

Ca đã chạy và ý nghĩa kết quả

Trên fixture Product tự tạo, thư viện trả name Lab cup, SKU LAB-1 và một object Offer chứa price cùng currency. Product không có price trực tiếp. Kết quả này xác nhận quan hệ cụ thể và việc itemref được đọc trong mẫu đã chọn.

Nó chưa xác nhận mọi dạng itemref, mọi loại thẻ hoặc tài liệu HTML lỗi. Các ca đó cần được thêm theo nguồn mục tiêu. Không gọi một mẫu hẹp là độ chính xác 100% hay khả năng tuân thủ toàn bộ chuẩn.

Đọc lại output được lưu để kiểm không mất cấu trúc khi serialize JSONL. Nếu bảng cuối flatten Offer, đối soát khóa cha con và currency ở bước đó. Kết quả parser đúng có thể bị làm sai bởi một bước xuất dữ liệu không có schema.

Ca mở rộng trước khi chạy định kỳ

Thêm hai Product có name giống nhưng SKU khác để kiểm khóa. Thêm nhiều itemprop cùng tên để kiểm cardinality. Thêm itemref thiếu ID và một property meta rỗng để kiểm trạng thái lỗi. Mỗi ca cần kỳ vọng trước khi chạy.

Thêm một scope ngoài mục tiêu để kiểm bộ lọc không nhận nhầm. Thêm liên kết tương đối để kiểm base URL theo công cụ. Nếu dự án dùng HTML sau render, tạo snapshot cùng loại và không dùng kết quả HTML tĩnh để chứng nhận đường trình duyệt.

Khi nguồn không còn Microdata mà chuyển sang JSON-LD, ghi trạng thái thay đổi biểu diễn. Có thể thêm adapter JSON-LD riêng, nhưng không trộn output theo phỏng đoán rồi nhận là cùng parser. Dấu vết phương pháp giúp giải thích dữ liệu được tạo từ đâu.

Điều kiện bàn giao cho người dùng dữ liệu

Gói bàn giao nên có fixture, dependency version, schema output và bảng các ca đã chạy. Tài liệu itemref của MDN bổ sung ngữ cảnh về tham chiếu trong HTML. Người nhận cần biết ranh giới của thư viện chứ không chỉ có một script chạy được trên máy người viết.

Giữ dữ liệu gốc và quyết định chuẩn hóa theo chính sách lưu của dự án. Khi có một item bị nghi sai, phải tìm lại được snapshot tương ứng mà không đoán từ tên sản phẩm. Không đưa token hoặc HTML tài khoản thật vào bộ tái hiện nếu fixture tự tạo đã đủ thể hiện lỗi.

Chỉ công bố dữ liệu sau khi mối quan hệ và trạng thái thiếu được kiểm theo nhu cầu downstream. Scope đúng giúp giá gắn đúng sản phẩm; provenance đúng giúp kiểm lại khi nguồn đổi. Hai điều này có giá trị hơn việc lấy được thật nhiều itemprop mà không biết chúng thuộc đâu.

Đọc output fixture theo từng trường

Trường type của item đầu cần nhận dạng Product theo biểu diễn mà thư viện trả. Trong properties, name là Lab cup và sku là LAB-1. Đối chiếu từng giá trị giúp phát hiện trường bị mất mà một phép kiểm tổng số item không thấy được.

Trường offers là một object Offer trong fixture có một giá trị. Bên trong properties của nó mới có price và priceCurrency. Assertion price không xuất hiện trực tiếp ở Product là một kiểm âm có ích: nó bắt đúng lỗi làm phẳng mà đầu ra đủ trường vẫn có thể che.

Nếu sau bước chuẩn hóa mọi field thành list, giữ quy tắc này nhất quán ở cả item cha và item con. Khi đọc lại JSONL, kiểm một list không bị biến thành chuỗi chứa dấu ngoặc. Việc ghi tệp thành công chưa chứng minh schema còn nguyên sau serialize.

Xử lý entity HTML tại đúng lớp

HTML có thể dùng entity để biểu diễn dấu và ký tự đặc biệt. Parser HTML xử lý theo cách của công cụ; không cần gọi replace nhiều lần trên mọi text đã lấy. Một bước unescape lặp có thể biến chuỗi literal mà nguồn muốn giữ thành ký tự khác.

Thêm fixture có dấu &, dấu nháy và tiếng Việt để kiểm output chuỗi mong đợi. Giữ cả HTML nguồn và giá trị sau trích cho ca này. Nếu ký tự sai đã xuất hiện trước parser Microdata, quay lại bước decode HTTP thay vì sửa mù trong properties.

Với thuộc tính content, ký tự cũng cần được đọc theo cây HTML đã parse. Không lấy chuỗi attribute bằng regex rồi áp một quy tắc decode khác với phần text. Hai đường xử lý không thống nhất có thể tạo dữ liệu khác nhau từ cùng cách viết nguồn.

Giới hạn tài nguyên theo snapshot

Một HTML có nhiều scope lồng hoặc nhiều tham chiếu cần giới hạn kích thước và thời gian xử lý phù hợp với pipeline. Chọn ngưỡng theo nguồn mục tiêu và ghi rõ là chính sách tự đặt. Không dùng một input cực lớn vào máy dùng chung chỉ để tìm điểm treo của thư viện.

Nếu vượt giới hạn, lưu trạng thái từ chối cùng hash snapshot và lý do. Tránh cắt ngẫu nhiên HTML rồi nhận các item còn lại là đủ, vì điểm cắt có thể làm thay ranh giới scope. Nếu xuất một phần là yêu cầu, phải có cờ partial và tiêu chí chấp nhận rõ.

Các thử nghiệm hiệu suất nên dùng fixture được phép, tách khỏi kiểm chức năng. Một parser nhanh nhưng gắn sai Offer vào Product không đạt mục tiêu. Đo quan hệ đúng trước, rồi mới đánh giá tốc độ và mức tài nguyên theo dữ liệu đại diện.

Khi nguồn công bố nhiều định dạng cùng lúc

Trang có thể có Microdata và JSON-LD mô tả cùng sản phẩm nhưng không đồng nhất. Đừng tự chọn định dạng có giá thấp hơn hoặc nhiều trường hơn làm sự thật. Giữ phương pháp, snapshot và một chính sách ưu tiên được nghiệp vụ duyệt nếu cần hợp nhất.

Nếu hai nguồn trong cùng trang mâu thuẫn, tạo một trạng thái conflict có thể đối chiếu. Một người biên tập hoặc quy tắc theo nguồn có thể quyết định cách xử lý. Parser không có đủ ngữ cảnh để khẳng định giá nào là giá checkout chỉ từ hai khối markup.

Hợp nhất dữ liệu cần giữ dấu vết trường đến từ định dạng nào. Khi website sửa một bên, người dùng có thể hiểu vì sao output thay đổi. Xóa provenance sau khi merge sẽ làm mất khả năng điều tra chính sự khác biệt mà hệ thống cần quan sát.

Khi bàn giao, ghi cả phiên bản fixture và thời điểm chạy. Hai tệp cùng tên nhưng đã sửa HTML có thể tạo output khác, nên hash snapshot vẫn cần được giữ cạnh báo cáo kiểm.

Hãy giữ scope trước khi lấy giá trị; một trường đúng chữ nhưng gắn sai thực thể vẫn là dữ liệu sai.

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 trích Microdata bằng Python.

TIN TỨC LIÊN QUAN