跳转到主要内容

Net::HTTP - 支持多页数据抓取和绕过 CloudFlare 的通用基础爬虫工具

爬虫工具概览

爬虫工具概览Net::HTTPNet::HTTP 是一款通用的爬虫工具,可用于解决大多数非标准任务。它可以作为从任何网站抓取任意内容的基石。支持通过链接下载页面代码,支持多页抓取(翻页),自动处理代理,并允许根据状态码或页面内容验证响应是否成功。

爬虫工具应用案例

采集的数据

采集的数据
  • 内容
  • 服务器响应代码
  • 服务器响应描述
  • 服务器响应头
  • 请求时使用的代理
  • 包含所有采集页面的数组(在使用 Use Pages 选项时使用)

功能

  • 多页数据抓取(翻页)
  • 自动处理代理
  • 按代码或页面内容检查成功响应
  • 支持 gzip/deflate/brotli 压缩
  • 自动识别并将网站编码转换为 UTF-8
  • 绕过 CloudFlare 防护
  • 选择引擎(HTTP 或 Chrome)
  • Check content 选项 – 在获取的页面上执行指定的正则表达式。如果表达式未匹配,页面将使用其他代理重新加载。
  • Use Pages 选项 – 允许按指定步长遍历指定数量的页面。变量 $pagenum 包含遍历时的当前页码。
  • Check next page 选项 – 需要指定一个正则表达式,用于提取下一页的链接(通常是“下一页”按钮),如果存在的话。页面跳转在指定的限制范围内进行(0 表示无限制)。
  • Page as new query 选项 – 跳转到下一页作为新请求进行。允许取消翻页数量限制。

使用场景

  • 下载内容
  • 下载图片
  • 检查服务器响应代码
  • 检查 HTTPS 是否存在
  • 检查重定向是否存在
  • 输出重定向 URL 列表
  • 获取页面大小
  • 采集 Meta 标签
  • 从页面源代码和/或响应头中提取数据

查询

查询应指定页面链接,例如:

http://lenta.ru/
http://a-parser.com/pages/reviews/

结果输出示例

A-Parser 凭借内置的 Template Toolkit 模板引擎支持灵活的结果格式化,使其能够以任意形式以及结构化形式(如 CSV 或 JSON)输出结果。

输出内容

结果格式:

$data

结果示例:

<!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 - 专业的 SEO 爬虫工具</title>
<noscript><style>.JsOnly, .jsOnly { display: none !important; }</style></noscript>
<link rel="stylesheet" href="css.php?css=xenforo,form,public,parser_icons&amp;style=9&amp;dir=LTR&amp;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&amp;style=9&amp;dir=LTR&amp;d=1612857138" />
<link rel="stylesheet" href="css.php?css=uix,uix_style&amp;style=9&amp;dir=LTR&amp;d=1612857138" />

服务器响应代码

结果格式:

$code

结果示例:

200
备注

结果格式 [% response.Redirects.0.Status || code %] 允许在请求存在重定向时输出 301 状态。

获取请求数据

变量 $response 有助于获取有关服务器请求和响应的信息

结果格式:

$response.json\n

结果示例:

{
"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"
}

获取重定向

查询:

https://google.it

结果格式:

$response.Redirects.0.URI -> $response.URI

结果示例:

https://google.it/  -> https://www.google.it/

包含重定向的 JSON

结果格式:

$response.Redirects.json

结果示例:

[{"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"}]

输出服务器响应状态

结果格式:

$reason

结果示例:

OK

服务器响应时间

结果格式:

$response.Time

结果示例:

1.457

获取页面大小

作为示例,大小以三种不同的方式呈现。

结果格式:

[% "data-length: " _ data.length _ "\n";
"Body-Length: " _ response.${'Body-Length'} _ "\n";
"Body-Length-Decoded: " _ response.${'Body-Length-Decoded'} _ "\n" %]

结果示例:

data-length: 70257
Body-Length: 23167
Body-Length-Decoded: 75868

结果处理

A-Parser 允许在数据抓取过程中直接处理结果,在本节中,我们列出了 Net::HTTP 爬虫工具最受欢迎的案例

输出 H1-H6 标签

添加正则表达式(选项 Parse custom results (使用正则表达式)) <(h\d+)[^>]+>(.+?)<\/h\d+>, 在“Parse result”字段中选择 $pages.$i.data - Page content,在正则表达式右侧的字段中选择修饰符 sg。结果类型将自动选择为数组。在“Name”字段中填写 headers,然后在“$1 to”中填写 tag,点击

旁边的加号,并在出现的新字段“$2 to”中填写 content。在结果通用格式中写入 $p1.headers.format('$tag - $content\n')

下载示例

如何将示例导入 A-Parser

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

采集 Meta 标签

添加正则表达式(选项 Parse custom results (使用正则表达式))(<meta[^>]+>),在“Parse result”字段中选择 $pages.$i.data - Page content,在正则表达式旁边的字段中选择修饰符 g。结果类型将自动选择为数组。在“Name”字段中填写 meta,在“$1 to”中填写 item。在结果格式中使用 $p1.meta.format('$item\n')

下载示例

如何将示例导入 A-Parser

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=

翻页遍历方案

使用 Use pages

Use pages。此功能允许在预先知道页数的情况下遍历翻页。 例如,我们以商品目录网站的一个分类为例 https://www.proball.ru/catalog/myachi/。在顶部和底部我们可以看到翻页面板。点击带有页码的图标时,可以在浏览器地址栏中看到页码参数是如何在请求末尾传递的:

https://www.proball.ru/catalog/myachi/?PAGEN_1=1

Use pages 是一种计数器,它实际上按顺序将数字代入 $pagenum 变量,并按我们指定的值递增

使用 Use pages

如截图所示,在爬虫工具的请求格式中,在需要的位置使用了 $pagenum 变量。 Use pages 功能将遍历并代入请求中的所有值,实际上我们将获得用于请求的链接

https://www.proball.ru/catalog/myachi/?PAGEN_1=$pagenum

其中变量 $pagenum 将被替换为页码,从 1 到 4,步长为 1。 通过这种方式,实现了对所需范围页面的遍历。这种方法的局限性在于需要预先知道翻页中的总页数。显然,当同时抓取多个分类时,各处的页数都会不同,作为权衡,我们可以简单地指定一个较大的预估页数。但这并不完全正确,因此有一个更优的解决方案,稍后将进行讨论

下载示例
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=

使用 Check next page

Check next page 是另一个允许组织翻页遍历的功能。其使用特点在于,为了跳转到下一页,需要使用一个能够返回下一页链接的正则表达式。这是一种更方便且最常用的方法。但无法将其应用于 https://www.proball.ru/catalog/myachi/,因为代码中没有指向下一页的链接。那里的链接是由脚本生成的。因此,我们以网站 http://www.imdb.com/search/name?gender=female 为例。这里在列表的开头和结尾都有翻页。通过查看和分析源代码,可以看到存在允许跳转到下一页的链接:

img

  • Next page RegEx 字段中写入正则表达式
  • Limit (限制) 字段中指定需要遍历的页数
使用 Check next page

示例中指定了 4。通过指定限制,我们确定了爬虫工具应该遍历多少页。在我们的案例中,将遍历 5 页,因为计数是从 0 开始的。如果指定限制为 0,则爬虫工具将一直工作,直到遍历完所有页面,无论其数量多少。当需要从所有页面抓取所有结果时,这非常方便

下载示例
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=

如上所述,可以在 Use pages 中动态限制页数。为此,需要同时使用 Use pagesCheck next page。让我们补充在描述 Use pages 时考虑的示例,并向其中添加 Check next page 功能:

使用 Check next page (2)

这两个功能配合工作的方式如下:Use pages 负责遍历页面,而 Check next page 检查是否存在下一页。一旦 Check next page 找不到下一页,该分类的数据抓取将停止,而不会等待完成 Use pages 中指定的全部数量。通过结合这些功能,我们提高了爬虫工具的工作效率,节省了时间和资源

下载示例
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==

使用替换宏

替换宏 允许实现从指定范围按顺序替换值

使用替换宏

该预设将按以下方式工作。在请求格式中指定模板:

$query?PAGEN_1={num:1:10}

我们将 1 before 10 的值替换(可以指定任何范围)添加到请求本身。通过这种方式,我们获得了确保遍历所需页数的请求,形式如下:

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

使用 替换宏 进行翻页遍历类似于 Use pages 功能,并且具有相同的限制,即需要指定具体的值范围。这种方法的优点在于,通过替换宏可以替换不同的值,既可以是数字,也可以是文本,例如单词或短语。通过这种方式,我们可以更灵活地在请求中插入所需部分,或者根据任务需要,从分布在不同文件中的部分构建请求本身

下载示例
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==

使用 Page as query

为了减少内存消耗,可以使用 Page as query 选项来定义逻辑。激活该选项后,Check next page 和 Use pages 功能会将每一个后续页面作为独立的请求代入查询,从而不会在内存中累积它们的内容。Page as query 还允许确定是否提高请求级别 Increase(类似于 tools.query.add 工具的工作方式),或者保持不变 Keep

使用 Page as query
下载示例
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=

可用设置

参数名称默认值描述
Good statusAll选择哪些服务器响应将被视为成功。如果抓取时收到服务器的其他响应,则将使用其他代理重复请求
Good code RegEx可以指定用于检查响应代码的正则表达式
Ban Proxy Code RegEx可以根据服务器响应代码暂时封禁代理 (Proxy ban time)
MethodGET请求方法
POST body使用 POST 方法时传递给服务器的内容。支持变量 $query – 请求 URL,$query.orig – 原始查询,以及 $pagenum - 使用 Use Pages 选项时的页码。
Cookies可以为请求指定 cookies。
User agent_自动代入最新版本 Chrome 的 user-agent_请求页面时的 User-Agent 请求头
Additional headers可以指定自定义请求头,支持模板引擎功能并使用请求构造器中的变量
Read only headers仅读取响应头。在不需要处理内容的情况下,某些时候可以节省流量
Detect charset on content根据页面内容识别编码
Emulate browser headers模拟浏览器请求头
Max redirects count7爬虫工具将执行的最大重定向次数
Follow common redirects允许在同一域名内绕过 Max redirects count 限制进行 http <-> https 和 www.domain <-> domain 的重定向
Max cookies count16要保存的最大 cookies 数量
EngineHTTP (Fast, JavaScript Disabled)允许选择 HTTP 引擎(更快,无 JavaScript)或 Chrome 引擎(较慢,启用 JavaScript)
Chrome Headless如果启用此选项,浏览器将不会显示
Chrome DevTools允许使用 Chromium 调试工具
Chrome Log Proxy connections如果启用此选项,chrome 连接信息将输出到日志中
Chrome Wait Untilnetworkidle2定义何时认为页面已加载。关于取值的详细信息
Use HTTP/2 transport定义是否使用 HTTP/2 代替 HTTP/1.1。某些网站如果使用 HTTP/1.1 会立即封禁,而另一些网站则不支持 HTTP/2。
Try use HTTP/1.1 for Protocol error指示爬虫工具在启用 HTTP/2 并收到协议错误(即网站不支持 HTTP/2)时,使用 HTTP/1.1 重试请求
Don't verify TLS certs禁用 TLS 证书验证
Randomize TLS Fingerprint此选项允许绕过网站对 TLS 指纹的封禁
Bypass CloudFlare with Chrome自动绕过 CloudFlare 检查
Bypass CloudFlare with Chrome Max Pages20通过 Chrome 绕过 CF 时的最大页数
Bypass CloudFlare with Chrome Headless如果启用此选项,通过 Chrome 绕过 CF 时将不显示浏览器