Net::HTTP - Công cụ cào dữ liệu cơ bản đa năng với hỗ trợ cào dữ liệu nhiều trang và vượt qua CloudFlare
Tổng quan về công cụ cào dữ liệu

Net::HTTP – là một công cụ cào dữ liệu đa năng, cho phép giải quyết hầu hết các tác vụ không tiêu chuẩn. Có thể được sử dụng làm nền tảng để cào dữ liệu nội dung tùy ý từ bất kỳ trang web nào. Cho phép tải mã nguồn trang web theo liên kết, hỗ trợ cào dữ liệu nhiều trang (chuyển trang), tự động làm việc với Proxy, cho phép kiểm tra phản hồi thành công theo mã phản hồi hoặc theo nội dung trang.Các trường hợp ứng dụng công cụ cào dữ liệu
🔗 Đấu giá tên miền REG.RU
Cào dữ liệu đấu giá các tên miền đang tự do với khả năng lọc
🔗 Dữ liệu chứng chỉ SSL
Cào dữ liệu chứng chỉ SSL của các tên miền từ trang leaderssl.ru
🔗 Cào dữ liệu tài nguyên Booking.com
Lấy kết quả tìm kiếm căn hộ và khách sạn trên trang web
🔗 Thu thập đặc tính sản phẩm
Ví dụ cào dữ liệu với số lượng đặc tính sản phẩm không xác định
🔗 Cào dữ liệu cơ sở dữ liệu phim từ IMDB
Lấy dữ liệu về mỗi bộ phim và ghi chúng vào kết quả
🔗 Kiểm tra sự hiện diện của HTTPS
Cấu hình sẵn kiểm tra sự hiện diện của HTTPS trên trang web
Dữ liệu thu thập được

- Nội dung
- Mã phản hồi của máy chủ
- Mô tả phản hồi của máy chủ
- Các tiêu đề (headers) phản hồi của máy chủ
- Proxy đã sử dụng khi thực hiện yêu cầu
- Mảng chứa tất cả các trang đã thu thập (được sử dụng khi bật tùy chọn Use Pages)
Tính năng
- Cào dữ liệu đa trang (chuyển trang)
- Tự động làm việc với Proxy
- Kiểm tra phản hồi thành công theo mã lỗi hoặc theo nội dung trang
- Hỗ trợ nén gzip/deflate/brotli
- Xác định và chuyển đổi bảng mã của trang web sang UTF-8
- Vượt qua bảo vệ CloudFlare
- Lựa chọn công cụ (HTTP hoặc Chrome)
- Tùy chọn Check content – thực hiện biểu thức chính quy (regex) được chỉ định trên trang nhận được. Nếu biểu thức không khớp, trang sẽ được tải lại bằng một Proxy khác.
- Tùy chọn Use Pages – cho phép duyệt qua số lượng trang nhất định với bước nhảy xác định. Biến
$pagenumchứa số trang hiện tại trong quá trình duyệt. - Tùy chọn Check next page – cần chỉ định biểu thức chính quy để trích xuất liên kết đến trang tiếp theo (thường là nút "Tiếp theo"), nếu nó tồn tại. Việc chuyển trang được thực hiện trong giới hạn đã chỉ định (0 - không giới hạn).
- Tùy chọn Page as new query – việc chuyển sang trang tiếp theo diễn ra trong một yêu cầu mới. Cho phép loại bỏ giới hạn về số lượng trang cần chuyển.
Các kịch bản sử dụng
- Tải xuống nội dung
- Tải xuống hình ảnh
- Kiểm tra mã phản hồi của máy chủ
- Kiểm tra sự hiện diện của HTTPS
- Kiểm tra sự hiện diện của chuyển hướng (redirect)
- Xuất danh sách URL chuyển hướng
- Lấy kích thước trang
- Thu thập các thẻ meta
- Trích xuất dữ liệu từ mã nguồn trang và/hoặc các tiêu đề
Truy vấn
Trong phần truy vấn, bạn cần chỉ định các liên kết đến trang, ví dụ:
http://lenta.ru/
http://a-parser.com/pages/reviews/
Các ví dụ định dạng đầu ra
A-Parser hỗ trợ định dạng kết quả linh hoạt nhờ vào công cụ mẫu tích hợp Template Toolkit, cho phép xuất kết quả dưới dạng tùy ý cũng như dưới dạng cấu trúc như CSV hoặc JSON
Xuất nội dung
Định dạng kết quả:
$data
Ví dụ kết quả:
<!DOCTYPE html><html id="XenForo" lang="ru-RU" dir="LTR" class="Public NoJs uix_javascriptNeedsInit LoggedOut Sidebar Responsive pageIsLtr hasTabLinks hasSearch is-sidebarOpen hasRightSidebar is-setWidth navStyle_0 pageStyle_0 hasFlexbox" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<!-- Google Tag Manager -->
<!-- End Google Tag Manager -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<base href="https://a-parser.com/" />
<title>A-Parser - công cụ cào dữ liệu dành cho chuyên gia SEO</title>
<noscript><style>.JsOnly, .jsOnly { display: none !important; }</style></noscript>
<link rel="stylesheet" href="css.php?css=xenforo,form,public,parser_icons&style=9&dir=LTR&d=1612857138" />
<link rel="stylesheet" href="css.php?css=facebook,google,login_bar,moderator_bar,nat_public_css,node_category,node_forum,node_list,notices,panel_scroller,resource_list_mini,sidebar_share_page,thread_list_simple,twitter,uix_extendedFooter&style=9&dir=LTR&d=1612857138" />
<link rel="stylesheet" href="css.php?css=uix,uix_style&style=9&dir=LTR&d=1612857138" />
Mã phản hồi của máy chủ
Định dạng kết quả:
$code
Ví dụ kết quả:
200
Định dạng kết quả [% response.Redirects.0.Status || code %] cho phép hiển thị trạng thái 301, nếu trong yêu cầu có sự hiện diện của các chuyển hướng.
Lấy dữ liệu về yêu cầu
Biến $response giúp lấy thông tin về yêu cầu và phản hồi của máy chủ
Định dạng kết quả:
$response.json\n
Ví dụ kết quả:
{
"Time": 3.414,
"connection": "keep-alive",
"Decode": "Decode from utf-8(meta charset)",
"cache-control": "max-age=3600,public",
"last-modified": "Tue, 18 May 2021 12:42:56 GMT",
"transfer-encoding": "chunked",
"date": "Thu, 27 May 2021 14:18:42 GMT",
"Status": 200,
"content-encoding": "gzip",
"Body-Length-Decoded": 1507378,
"Reason": "OK",
"Proxy": "http://51.255.55.144:25302",
"content-type": "text/html",
"Redirects": [],
"server": "nginx",
"Request-Raw": "GET / HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-US,en;q=0.9\r\nConnection: keep-alive\r\nHost: a-parser.com\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n\r\n",
"URI": "https://a-parser.com/",
"HTTPVersion": "1.1",
"Body-Length": 299312,
"Decode-Mode": "auto-html",
"etag": "W/\"60a3b650-170032\"",
"Decode-Time": 0.003,
"IP": "remote",
"expires": "Thu, 27 May 2021 15:18:42 GMT"
}
Lấy thông tin chuyển hướng
Truy vấn:
https://google.it
Định dạng kết quả:
$response.Redirects.0.URI -> $response.URI
Ví dụ kết quả:
https://google.it/ -> https://www.google.it/
JSON với các chuyển hướng
Định dạng kết quả:
$response.Redirects.json
Ví dụ kết quả:
[{"x-powered-by":"PleskLin","connection":"keep-alive","URI":"http://a-parser.com/","location":"https://a-parser.com/","date":"Thu, 18 Feb 2021 09:16:36 GMT","HTTPVersion":"1.1","Status":301,"content-length":"162","Reason":"Moved Permanently","Proxy":"socks5://51.255.55.144:29683","content-type":"text/html","IP":"remote","server":"nginx","Request-Raw":"GET / HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-US,en;q=0.9\r\nConnection: keep-alive\r\nHost: a-parser.com\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n\r\n"}]
Xuất trạng thái phản hồi của máy chủ
Định dạng kết quả:
$reason
Ví dụ kết quả:
OK
Thời gian phản hồi của máy chủ
Định dạng kết quả:
$response.Time
Ví dụ kết quả:
1.457
Lấy kích thước trang
Dưới đây là ví dụ về kích thước được trình bày theo ba cách khác nhau.
Định dạng kết quả:
[% "data-length: " _ data.length _ "\n";
"Body-Length: " _ response.${'Body-Length'} _ "\n";
"Body-Length-Decoded: " _ response.${'Body-Length-Decoded'} _ "\n" %]
Ví dụ kết quả:
data-length: 70257
Body-Length: 23167
Body-Length-Decoded: 75868
Xử lý kết quả
A-Parser cho phép xử lý kết quả trực tiếp trong quá trình cào dữ liệu, trong phần này chúng tôi đưa ra các trường hợp phổ biến nhất cho công cụ cào dữ liệu Net::HTTP
Xuất các thẻ H1-H6
Thêm biểu thức chính quy (tùy chọn Parse custom results (Sử dụng biểu thức chính quy)) <(h\d+)[^>]+>(.+?)<\/h\d+>, trong ô "Parse result" chọn $pages.$i.data - Page content, trong ô bên cạnh biểu thức chính quy chọn các modifier sg. Kiểu kết quả sẽ tự động được chọn là mảng. Trong ô "Name" nhập headers, sau đó ở "$1 to" nhập tag, nhấn vào
content. Trong định dạng tổng quát của kết quả, ghi đầu ra $p1.headers.format('$tag - $content\n').Tải xuống ví dụ
eJxtVNuO2jAQ/RVkIS2IW3loH6IVFYuK2ooSlmWfIJUsMgR3HTu1HboI8e+dcUIC
tE+Jj+ccn7nYJ+a4fbMLAxacZcH6xDL/zwI2BxcEX1erRWOrpYStEypp7Ie9/SfW
ZRk3Fgwx1nUg4jHseC4d656YO2aAMtvcOp0uwXqYmeInWKNEApYo3HEW0U4C70h4
bO03m7jTXv8cRZ1Rq9/53H7cbAYeHLEyblWI26SSLBFuDD8i6L9znhK2Bx6T2Uso
2cbEibvVyoFyLDpHUbU91SblVIJmNuyX5P7Og62HJhIbvUazZG426qFdK7/wA6w0
UndCQg1PcVWaaWK+QLsXxXbfvVNleBwLJ7TisjifXNaeXpX4nRNfaYzFXyPATo1O
EXLgBQg8XryvWdOvqbK55z4XHBbsuLTQZRatTjkaie93hAPDnTZhRn4QPzGtxlLO
4ACyDvP6T7mQVJ/xDknfSuL/Q8J/NM5VetdHHcD8MeihUvGrp/BHzYr1TCeXYkiR
CodrO9G5orZ9QPANIKtqNqewVBuojimVy9Nx/jNQMUbWLRtnNXSTxk1bbkGciZ1I
QkzAiBgukbla4SUL1USnmQTKS+VSYlssLOvxGNuyDbSoDd6TJ/4ItFXdNOa0lvb7
S2E1MwLH7yMZTLGS16eWklsu5etydr1DRLylWai+GHPXPj8YbO9cZoPBgPeKm9/f
6nRA9weHOdE4ZpjqOarehepBOV29DsHpjK37ZRdFDOVJEYhhwSz2hQXD81+VjpX2
Thu thập các thẻ meta
Thêm regex (tùy chọn Parse custom results (Sử dụng regex)) (<meta[^>]+>), trong trường "Parse result" chọn $pages.$i.data - Page content, trong trường đối diện regex chọn modifier g. Loại kết quả sẽ tự động được chọn là mảng. Trong trường "Name" nhập meta, trong "$1 to" nhập item. Trong Định dạng kết quả sử dụng $p1.meta.format('$item\n').
Tải xuống ví dụ
eJxtVO9v2jAQ/V8spBatg/XDvkRTJYqEtokRRtNPNJMscsk8/Gu2Q0FR/vfeJSGB
bp/ie37v3Z3PTsUC93u/duAheBZtK2abNYtYBjkvZWB3zHLnwdH2lq0gRNHXJFkj
3jMqFk4WULMrfTBqA74VunYRbdGiAE8SHjhLaaeAIwpuvygIfPvrIf3wMGYdnrRm
Re/QAdw5fkKw+a64IozkPY9KZCKAYmmdpj26ME5xamlk7yckmOQNcnszIvLLi74Z
Dx5P/ACJQXYuJAzwAqMu5wi7ANo9+4wn4Uj98iwTQRjNZZuS6hnKeNbib0l6bZCL
SyfAL5xRCAVoDAg8ncvdslET03mVjfZnq2FRzqWHO+ax1AXHQrL3O9iX48G42FI9
iFfM6JmUSziAHGiN/2MpZIbzneUo+tYJ/0+J//Go+/YuUx3AvTqsoXdposf4x6DK
zNIU58OQQomAsZ+bUtOkPiG4B7D9ma2IpoyDPk3n3GXHK2xBZ8gcRjazA3TVxtVY
rsGd0bkoYmzAiQzOzFIn+E5iPTfKSqC+dCkljsXDZrgeM9+NgYKhwPfieZPi6oUF
Y6T//tSWap3A6/eZClR4kpdZO8sdl/J5s7zcYcOVwuB3CNZH0yn/2L7dyc6o6avY
i6nQGRynjDwCFAZvF3ZYp/0j738F1cVTj6oaJ/bHr1sOtUcMxPCcPI6DRff1GzD1
gDE=
Các phương án duyệt qua phân trang
Sử dụng Use pages
Use pages. Chức năng này cho phép duyệt qua phân trang với việc chỉ định trước số lượng trang đã biết.
Ví dụ, hãy lấy một trong các danh mục trên trang web danh mục sản phẩm https://www.proball.ru/catalog/myachi/. Ở phía trên và phía dưới, chúng ta thấy thanh phân trang. Khi nhấp vào các biểu tượng có số trang, bạn có thể thấy trong thanh địa chỉ trình duyệt cách tham số với số trang được truyền ở cuối yêu cầu:
https://www.proball.ru/catalog/myachi/?PAGEN_1=1
Use pages - đây là một loại bộ đếm, thực tế nó sẽ thay thế các số theo thứ tự vào biến $pagenum, tăng chúng theo giá trị mà chúng ta chỉ định

Như có thể thấy trong ảnh chụp màn hình, trong định dạng yêu cầu của công cụ cào dữ liệu, biến $pagenum được sử dụng ở vị trí cần thiết.
Chức năng Use pages sẽ duyệt qua và thay thế tất cả các giá trị vào yêu cầu, thực tế chúng ta sẽ nhận được các liên kết cho yêu cầu
https://www.proball.ru/catalog/myachi/?PAGEN_1=$pagenum
trong đó thay vì biến $pagenum sẽ là số trang, bắt đầu từ 1 đến 4 với bước nhảy là 1.
Bằng cách này, chúng ta có thể duyệt qua các trang trong phạm vi cần thiết. Đây chính là hạn chế của phương pháp này - bạn cần biết trước số lượng trang có trong phân trang. Rõ ràng là khi cào dữ liệu đồng thời nhiều danh mục, số lượng trang ở mỗi nơi sẽ khác nhau, và như một giải pháp, chúng ta có thể chỉ đơn giản là chỉ định một số lượng trang dự kiến lớn hơn. Nhưng điều này không hoàn toàn chính xác, vì vậy có một giải pháp tối ưu hơn mà chúng ta sẽ thảo luận tiếp theo
Tải xuống ví dụ
eJx1VNtu2kAQ/ZVqhJSgUAhV+2I1jSgqvSgCmtAnjKKtPTZu1rubvXAR8r931jY2
pOmTvWfPXM7M7BzAMvNk5hoNWgPB8gCq/IcAnME5SxF6oJg2qP31EqZog+DbYjEn
PMaEOW6hdwC7V0g2coNaZ7E3ymI6p1LGY1meN4w7oizfXV+vitYicsbK/B5N6Qh0
9RMsKWiKxgdhlsHK36S4I4OP7E3EmTE3IaQU6m1mMX98XCOLUYcQhuZqrTGh28v+
1W03hE9Q2y6qgGkTpQaY1mxPYPmdstxjPBNPpiF65SUEp5lLZTMpzFFqXS7TSoWh
9xrHmecxDsGhEvVgUdW3/hxJJ3y930NR/L+Szw71PpE6Z/YkQqeEb+ejr1+mj8Ob
jvcnXA7FatUkP6mMiKyG/VJYv/JzebG2VplgMNhut32l5W/GeV+7jieFobjothV4
YBtcSHKSZBxbeEKnumQdahT626P3bj8ym7MKVJn4arbZ/RLZcylFSOJ6ORmaiZY5
QRZ3tgb3RxXLWrMfCVfa/qxsIEgYN9gDQ6lOGCUSv7yhUdHMSj2rO0cNkWLE+R1u
kLe00v9nl3GaKDNKyOh7bfg6ZfaPj6KRdxqKOrrVlENLiuWdTI/anxBVU42pR3Kp
sXFQR6790otVKPxgtM0YqRY6S/Cs4OdgJEWSpbN62I5MJxa0FmZiLHPF0WcsHOc9
P+P3beNHpi6wP7QJvjQelyEorWZdgJWSmx8PVapKZzRYH5rmE/r6XA4iWgVcpoN8
z6J1NiBbQjCVNA1+c5XjQi9Hl/J6gDvFRIxUEasdFqti1ayyZuEdThZacKAHCH/M
vOJ4VZ5BGJXHUBcgGBZ/AXULzRU=
Sử dụng Check next page
Check next page - đây là một chức năng khác cho phép tổ chức việc duyệt qua phân trang. Đặc điểm của việc sử dụng nó là để chuyển sang trang tiếp theo, bạn cần sử dụng một biểu thức chính quy sẽ trả về liên kết đến trang tiếp theo. Đây là cách thuận tiện và được áp dụng thường xuyên nhất. Nhưng không thể áp dụng nó cho https://www.proball.ru/catalog/myachi/, vì trong mã nguồn không có liên kết đến các trang tiếp theo. Các liên kết ở đó được tạo bởi script. Vì vậy, hãy lấy ví dụ trang web http://www.imdb.com/search/name?gender=female. Ở đây có phân trang ở cả đầu và cuối danh sách. Sau khi xem và phân tích mã nguồn, bạn có thể thấy sự hiện diện của liên kết cho phép chuyển sang trang tiếp theo:

- trong trường Next page RegEx chúng ta sẽ viết biểu thức chính quy
- trong trường Limit chúng ta sẽ chỉ định số lượng trang cần duyệt qua

Trong ví dụ chỉ định là 4. Bằng cách chỉ định giới hạn, chúng ta xác định công cụ cào dữ liệu nên duyệt qua bao nhiêu trang. Trong trường hợp của chúng ta, 5 trang sẽ được duyệt qua, vì việc đếm bắt đầu từ 0. Nếu chỉ định giới hạn là 0, công cụ cào dữ liệu sẽ làm việc cho đến khi duyệt qua hết tất cả các trang bất kể số lượng của chúng là bao nhiêu. Điều này rất thuận tiện khi cần cào tất cả kết quả từ tất cả các trang
Tải xuống ví dụ
eJx1VGFT2kAQ/SuZG2aUggGq4DSijnXG2qpAlY4fCM6cZANXL7n07iJYhv/e3RAS
sO0XuH3ZvX1vd2+XzHLzYgYaDFjDvNGSJdmZeWwyg8lLDxZ2wKfA6izh2oAmpxHr
gfW86+FwgHgAIU+lZfUls28JYKR6Ba1FQEEiQHuqVHCpMvuVyxRdRh+bzfHq/xEp
ZjrAtLEtY9id+i2k5I2223T2H0UcqLlxekOn47ZOHLQ7RyfOonNUdS6SRMIjPN8I
22gfHruHHWf/5np4d1t3pHgB5wsKU1XncqZVBI32J7fpHjaPW26r1XYeeMi1yMPY
FsVJaqyK7sFkWpleH7wR1mUKhurALWdj+jKFBQZ0TcJjZyK5Mac+k8JY1CQsRAdI
HRZuzWdnvm8+7Lu18yodur7foBhCa10+ejob19Yeo6fueMuJn7E8zXDNbVoQygGu
NX9DMPvv8YgwSm0KR+oji9PoGZGYHHbakVihYrPpxvtJ2DSky52ZhhDVrTUwIv5O
MFXnIMZYh34y02fELAgEJeGSecvdDLciEjSAR2y1Go8LwldKR5zwStJyMzFumEH7
exUS4lRIh+/He9VS5QN/haHCoFBIKOErtPKyVLBvQF83t1Vdu7A7DNeZqWIlmx+x
+JUVIVboi0ctwFzhQCFkIbuAwLcN6xGrZDZNSJrFfl/HMC/k0kCdGaR6xZFI8P4L
itXcKt3P24IFU/GFlLfwCrJ0y+7/nAoZ4DO9CDHoax74b5f+X3esCnnbqfBtzjVy
KJ0CdaumG+0vAElRjR4hkdJQXJBnzu/FTZNATENVNgOfawHtENwp+C44UXEopv18
bWw803iI66wfX6oINwAxjlMp67RO7svGX5i8wGSUBN8HX2YpkFax4JhVSppvD2uq
iRY4WO2i+YjOrE28RmM+n7siCp7diYoaBriezBo0m+e40FDCaQgRz6ZxgqM3VTgU
tHizqaHhMZQKFrgJAsCyWJ3CarwaFxu42NbLrT3sLVfYmJ9msPYhaeSBGNbIYCuY
11r9ASIaBUM=
Như đã nói ở trên, có khả năng giới hạn động số lượng trang trong Use pages. Để làm điều này, cần sử dụng kết hợp Use pages và Check next page. Hãy bổ sung ví dụ đã được xem xét khi mô tả Use pages và thêm vào đó chức năng Check next page:

Hai chức năng này khi kết hợp hoạt động như sau: Use pages đảm bảo việc duyệt qua các trang, còn Check next page kiểm tra xem trang tiếp theo có tồn tại hay không. Ngay khi Check next page không tìm thấy trang tiếp theo, việc cào dữ liệu của danh mục này sẽ bị dừng lại mà không cần đợi duyệt qua hết số lượng đã chỉ định trong Use pages. Bằng cách kết hợp các chức năng này, chúng ta tăng thêm hiệu quả trong công việc của công cụ cào dữ liệu, tiết kiệm thời gian và tài nguyên
Tải xuống ví dụ
eJx1VNtuGjEQ/ZXKQkqiEC6V+rJqGtGo9KIIaEKfWBS5u7OLi9d2bC8EIf69M3uF
XJ52fTyXM2fGs2eeu7WbWXDgHQsWe2aKfxaw3MGMp8C6zHDrwNL1gk3AB8GP+XyG
eAwJz6Vn3T3zOwPoozdgrYjJScR4TrWOb3Vx3nCZo8ni42CwPLQeUe68zu7BFYGY
LX+CBSZNwVES7jlb0k0Kz+jwmX+IJHfuOmQpproSHrLHxxXwGGzIwtBdriwkeHve
u7y5CNkXVvnOy4Rpk6UCuLV8h2DxnfCMMCnU2jWGVHkBsWPm2nihlatLreRybals
SFHjWJAdlyzYl0U9eDDVLZ0jnSvSezgYsMPhfS2fcrC7RNuM+6McnQK+mY2+f5s8
Dq87FFHlGXufaLSCaD2BZ191t45EQl8pxK8oxjVpGV+G7FUNJ/53IhNEnqgvl41g
45Im0jPDXiFmr2R+frby3rig399utz1j9V8uZc/mHTIKQ3V20ar+wDcw1xgkERJa
eIynqk0d5Ax0W0e/6EVuc8K4ZEIdbNn9UeKpKFlptCUBBbix1RlCHgurwF1dxaJS
mcYwL3x/lz4sSLh00GUOqY45Eolf3uB4Wu61nVZNQAG1Gkl5BxuQrVkR/2suJE6x
GyXo9LNyfNtk+irGoSnvOBXO0NYih9Yo1nc6rWtfA5hGjQkhmbbQBKgyV3FxSxhQ
NEJtM0amhU4Ingh+CkZaJSKdVuNdW+Zqjqtoqm51ZiQQY5VL2aV3dd82fuQqgenQ
EnzpfFukoKGuVxTzWkv366GkaqzAwfrUNB/Rt+eyH+GrkDrtZzserUQffRGBVOM0
0LYsxgWfmC3K6zJ4NlzFgIoMD8vDstmdzYbdH23QYI/vnf1zs9KGSiILxFAbhy2g
KP8Byg3yDQ==
Sử dụng macro thay thế
Macro thay thế cho phép thực hiện việc thay thế tuần tự các giá trị từ phạm vi đã chỉ định

Preset này sẽ hoạt động như sau. Bằng cách chỉ định mẫu trong định dạng yêu cầu:
$query?PAGEN_1={num:1:10}
chúng ta thêm việc thay thế các giá trị từ 1 before 10 (có thể chỉ định bất kỳ phạm vi nào) vào chính yêu cầu đó. Bằng cách này, chúng ta nhận được các yêu cầu đảm bảo việc duyệt qua số lượng trang cần thiết, có dạng:
https://www.proball.ru/catalog/myachi/?PAGEN_1=1
https://www.proball.ru/catalog/myachi/?PAGEN_1=2
...
https://www.proball.ru/catalog/myachi/?PAGEN_1=10
Việc sử dụng macro thay thế để duyệt qua phân trang tương tự như chức năng Use pages và có những hạn chế tương tự, tức là cần chỉ định phạm vi giá trị cụ thể. Ưu điểm của phương pháp này có thể coi là thông qua các macro thay thế, bạn có thể thay thế các giá trị khác nhau, cả số và văn bản, ví dụ như từ ngữ hoặc biểu thức. Bằng cách này, chúng ta có thể chèn các phần cần thiết vào yêu cầu một cách linh hoạt hơn hoặc tự tạo yêu cầu từ các phần sẽ được đặt trong các tệp khác nhau nếu nhiệm vụ yêu cầu
Tải xuống ví dụ
eJxtVFtP2zAU/iuTVQkQXUsn7SUaQx2iu4i1HXRPTYW85CT1cGzPx+lFUf47x26a
AOMp8Xcu3+dzccUcx0ecW0BwyKJlxUz4ZxH7yROr8WbH+sxwi2C9fcmm4KLo22Ix
JzyFjJfSsX7F3N4ABekNWCtSIKNI6ZxrnV7rcN5wWZLL8sPFxaruIpISnS7uAEMi
Zg8/0ZJIc0BPwh1nK2/JYUcBn/i7RHLEy5jlRPVeOCgeHtbAU7Axi2M8X1vIyHo6
OL86i9ln1sQuDoR5y9IA3Fq+JzB8p7zwmBTqEVtHf/MAsVW9WrXoRNuC+1L1zGgQ
IgZZgE5P1s4ZjIbD7XY7MFb/4VIObNnzTnGsTs661Pd8AwtNSTIhoYMndGq09KgC
4K3H7GeDBDdecJoKJ7Ti8qDEy+zU/Vbiny84U5p86dcKwInVBUEOdq4B98dbLFkv
nK/m468304fRZaXKIhpFo4val78M6X4d0rAo4xKhz5DUTzhpS19bqC2WO21nxksk
vGJajaW8hQ3Izi1QfimFpO7hOKOg703g2y6z/3LU7Y2fU9Ecbi1p6JxSfavzYzke
AUxboKlHCm2hTdAwN3lpPQwoP85df8amg14IfNGDl2CiVSbyWbMiR89SLWgHZ+pa
F0aCV6xKKangCHfdLIyxKbA/dAJfB18HCpLVriZzWkv8cX+QaqygWfvYzgOhb4/q
MKG1kzofFnuerMWQYgmBXNt9eCbCBPlBQs8BO8NVClQPZ0uoaUvaR6N9W6pnT0dU
1dSRvzg/+Pg7eQ/CqDhIPWDRqH4C36ybyg==
Sử dụng Page as query
Để giảm mức tiêu thụ bộ nhớ, logic có thể được xác định bằng tùy chọn Page as query. Khi kích hoạt nó, các chức năng Check next page và Use pages sẽ thay thế mỗi trang tiếp theo vào các truy vấn như một truy vấn độc lập riêng biệt, từ đó không tích lũy nội dung của chúng trong bộ nhớ. Page as query cũng cho phép xác định xem có tăng mức độ truy vấn hay không Increase (tương tự như cách hoạt động của công cụ tools.query.add), hoặc không Keep

Tải xuống ví dụ
eJx1VNty2jAQ/RWPJg/QEts0gUydpBnCDE0bAiQhkwfgQbHXoCJbriQDKcO/dyXM
tc0LeFd7OXv2siSaqqnqSVCgFQkGS5LZbxKQHh1DQ3Vg/piDfCcVklGpQBqrAemA
DoK7fr+H+ghimnNNKkui3zNAVzEDKVkE+MgilMdCRE1h5RnlOZoMvvj+aPWxR46Z
ThFAqnc+5EH8YZxTr+b6TumVpZGYK6fTd+pu9dJBuX5+6Szq52WnkWUcXuHtnmmv
dnbhntWd0v1d/6FdcTibgvMdwqkoO82JFAl4ta+u7575F1W3Wq05zzSmkhVuZB9i
pplI1QZhOMEgHVhow9MeyCvqTCTE10NScj/flIdkOFSfQ06VQhVnSmNhGbqcpujr
mB8rDgnGoFHETBLKSbA8zNBmCTNd8cnqY0zZccsKUFrmcBx9CpBZszbMADX+ajUa
VQh2H3upWkIm1OQ7yaquZpqbEou3ZzqDvsC3mO2rWyh1aGJgnURUg3l1YxunVHb1
Qh8UuE5ghmmX9CVlvy2HqUBb/JQMVAt7hCoNNoBRvm/ADciJlQmGyK3v49qHBDHl
CktWCLVFEUh0/MKwD1QL2S0YREZE2uDcsrEzs/Fvc8YjnPxGjE4/Csf/m3T/ibHa
lrefCsd9LhHDNoqVbrsPO69ItMUYK4/esG5u2o+yaoo8Xc9BxbZwy1nHcJYICds0
ReQiO+54BqmZkl3LcE+2qoMyDtqyp1wSJXIZmgX2ESHV1HBfDKOEMSxscPOPm2Dn
5lvJ/XRTvhoOvbW4MeivnczsamF6uZ6y0QoDhiKN2bhb3IQNmjzt47Hqpk2R4Hob
7tKc84q5FU+7EWyootVG2JFw7Ny0KQy9m+uFMARXP5/XdGSSIaqaAZtgt/azFiFD
yvnLU3v/hezGFoWJ1lngefP53GVJ9OaGIvEUUBlOvBT35AavG9J6HUNC7R6FuDRj
geOM5RoWinu7Pc7LvasbLPEMkF+qt7YxtRoL1CFpCvtPgurqL0u6AK8=
Các thiết lập có thể
| Tên tham số | Giá trị mặc định | Mô tả |
|---|---|---|
| Good status | All | Lựa chọn phản hồi nào từ máy chủ sẽ được coi là thành công. Nếu khi cào dữ liệu nhận được phản hồi khác từ máy chủ, yêu cầu sẽ được lặp lại với một Proxy khác |
| Good code RegEx | Khả năng chỉ định biểu thức chính quy để kiểm tra mã phản hồi | |
| Ban Proxy Code RegEx | Khả năng cấm Proxy trong một khoảng thời gian (Proxy ban time) dựa trên mã phản hồi của máy chủ | |
| Method | GET | Phương thức yêu cầu |
| POST body | Nội dung để truyền lên máy chủ khi sử dụng phương thức POST. Hỗ trợ các biến $query – URL yêu cầu, $query.orig – yêu cầu gốc và $pagenum - số trang khi sử dụng tùy chọn Use Pages. | |
| Cookies | Khả năng chỉ định cookies cho yêu cầu. | |
| User agent | _Tự động thay thế user-agent của phiên bản Chrome hiện tại_ | Tiêu đề User-Agent khi yêu cầu các trang |
| Additional headers | Khả năng chỉ định các tiêu đề yêu cầu tùy ý với sự hỗ trợ của các tính năng công cụ mẫu và sử dụng các biến từ trình tạo yêu cầu | |
| Read only headers | ☐ | Chỉ đọc các tiêu đề. Trong một số trường hợp cho phép tiết kiệm lưu lượng nếu không cần thiết phải xử lý nội dung |
| Detect charset on content | ☐ | Nhận dạng bảng mã dựa trên nội dung trang |
| Emulate browser headers | ☑ | Giả lập các tiêu đề của trình duyệt |
| Max redirects count | 7 | Số lượng chuyển hướng tối đa mà công cụ cào dữ liệu sẽ thực hiện |
| Follow common redirects | ☑ | Cho phép thực hiện chuyển hướng http <-> https và www.domain <-> domain trong phạm vi một tên miền mà không tính vào giới hạn Max redirects count |
| Max cookies count | 16 | Số lượng cookies tối đa để lưu trữ |
| Engine | HTTP (Fast, JavaScript Disabled) | Cho phép chọn công cụ HTTP (nhanh hơn, không có JavaScript) hoặc Chrome (chậm hơn, có bật JavaScript) |
| Chrome Headless | ☐ | Nếu tùy chọn này được bật, trình duyệt sẽ không hiển thị |
| Chrome DevTools | ☐ | Cho phép sử dụng các công cụ để gỡ lỗi Chromium |
| Chrome Log Proxy connections | ☐ | Nếu tùy chọn này được bật, thông tin về các kết nối chrome sẽ được xuất ra log |
| Chrome Wait Until | networkidle2 | Xác định khi nào trang được coi là đã tải xong. Chi tiết về các giá trị. |
| Use HTTP/2 transport | ☐ | Xác định xem có sử dụng HTTP/2 thay vì HTTP/1.1 hay không. Một số trang web sẽ cấm ngay lập tức nếu sử dụng HTTP/1.1, và ngược lại, một số trang không hoạt động qua HTTP/2. |
| Try use HTTP/1.1 for Protocol error | ☑ | Chỉ định công cụ cào dữ liệu lặp lại yêu cầu với HTTP/1.1 nếu HTTP/2 đã được bật và nhận được lỗi giao thức (tức là nếu trang web không hoạt động qua HTTP/2) |
| Don't verify TLS certs | ☐ | Tắt xác thực chứng chỉ TLS |
| Randomize TLS Fingerprint | ☐ | Tùy chọn này cho phép vượt qua việc cấm các trang web theo dấu vân tay TLS |
| Bypass CloudFlare with Chrome | ☐ | Tự động vượt qua kiểm tra CloudFlare |
| Bypass CloudFlare with Chrome Max Pages | 20 | Số lượng trang tối đa khi vượt qua CF qua Chrome |
| Bypass CloudFlare with Chrome Headless | ☑ | Nếu tùy chọn này được bật, trình duyệt sẽ không hiển thị trong quá trình vượt qua CF qua Chrome |