Fetcher 类¶
这里列出了所有 Fetcher 类的参数、属性和方法。
可以直接导入:
from scrapling.fetchers import (
Fetcher, AsyncFetcher, StealthyFetcher,
FetcherSession, AsyncStealthySession, StealthySession,
RemoteSession, AsyncRemoteSession
)
scrapling.fetchers.Fetcher
¶
基类: BaseFetcher
flowchart TD
scrapling.fetchers.Fetcher[Fetcher]
scrapling.engines.toolbelt.custom.BaseFetcher[BaseFetcher]
scrapling.engines.toolbelt.custom.BaseFetcher --> scrapling.fetchers.Fetcher
click scrapling.fetchers.Fetcher href "" "scrapling.fetchers.Fetcher"
click scrapling.engines.toolbelt.custom.BaseFetcher href "" "scrapling.engines.toolbelt.custom.BaseFetcher"
基础 Fetcher 类,通过 curl_cffi 发送 GET、POST、PUT 和 DELETE HTTP 请求。
源代码位于 scrapling/engines/toolbelt/custom.py
parser_keywords
class-attribute
instance-attribute
¶
parser_keywords = (
"huge_tree",
"adaptive",
"storage",
"storage_args",
"keep_comments",
"adaptive_domain",
)
display_config
classmethod
¶
源代码位于 scrapling/engines/toolbelt/custom.py
configure
classmethod
¶
一次设置多个全局解析参数。
| 参数 | 说明 |
|---|---|
kwargs
|
支持的参数有 huge_tree、keep_comments、adaptive、storage、storage_args 和 adaptive_domain。
默认值:
|
源代码位于 scrapling/engines/toolbelt/custom.py
get
classmethod
¶
post
classmethod
¶
put
classmethod
¶
scrapling.fetchers.AsyncFetcher
¶
基类: BaseFetcher
flowchart TD
scrapling.fetchers.AsyncFetcher[AsyncFetcher]
scrapling.engines.toolbelt.custom.BaseFetcher[BaseFetcher]
scrapling.engines.toolbelt.custom.BaseFetcher --> scrapling.fetchers.AsyncFetcher
click scrapling.fetchers.AsyncFetcher href "" "scrapling.fetchers.AsyncFetcher"
click scrapling.engines.toolbelt.custom.BaseFetcher href "" "scrapling.engines.toolbelt.custom.BaseFetcher"
基础 Fetcher 类,通过 curl_cffi 发送 GET、POST、PUT 和 DELETE HTTP 请求。
源代码位于 scrapling/engines/toolbelt/custom.py
parser_keywords
class-attribute
instance-attribute
¶
parser_keywords = (
"huge_tree",
"adaptive",
"storage",
"storage_args",
"keep_comments",
"adaptive_domain",
)
display_config
classmethod
¶
源代码位于 scrapling/engines/toolbelt/custom.py
configure
classmethod
¶
一次设置多个全局解析参数。
| 参数 | 说明 |
|---|---|
kwargs
|
支持的参数有 huge_tree、keep_comments、adaptive、storage、storage_args 和 adaptive_domain。
默认值:
|
源代码位于 scrapling/engines/toolbelt/custom.py
get
classmethod
¶
post
classmethod
¶
put
classmethod
¶
scrapling.fetchers.StealthyFetcher
¶
基类: BaseFetcher
flowchart TD
scrapling.fetchers.StealthyFetcher[StealthyFetcher]
scrapling.engines.toolbelt.custom.BaseFetcher[BaseFetcher]
scrapling.engines.toolbelt.custom.BaseFetcher --> scrapling.fetchers.StealthyFetcher
click scrapling.fetchers.StealthyFetcher href "" "scrapling.fetchers.StealthyFetcher"
click scrapling.engines.toolbelt.custom.BaseFetcher href "" "scrapling.engines.toolbelt.custom.BaseFetcher"
基于 Chromium、提供完整隐身功能的 Fetcher 类。
像真实浏览器一样运行,通过几乎所有在线测试和防护,并提供多种自定义选项。
源代码位于 scrapling/engines/toolbelt/custom.py
parser_keywords
class-attribute
instance-attribute
¶
parser_keywords = (
"huge_tree",
"adaptive",
"storage",
"storage_args",
"keep_comments",
"adaptive_domain",
)
display_config
classmethod
¶
源代码位于 scrapling/engines/toolbelt/custom.py
configure
classmethod
¶
一次设置多个全局解析参数。
| 参数 | 说明 |
|---|---|
kwargs
|
支持的参数有 huge_tree、keep_comments、adaptive、storage、storage_args 和 adaptive_domain。
默认值:
|
源代码位于 scrapling/engines/toolbelt/custom.py
fetch
classmethod
¶
打开浏览器,按下面选择的选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
block_ads
|
阻止向约 3,500 个已知广告或跟踪域名发送请求,可与
|
dns_over_https
|
通过 Cloudflare 的 DNS-over-HTTPS 发送 DNS 查询,避免使用代理时发生 DNS 泄露。
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/fetchers/stealth_chrome.py
async_fetch
async
classmethod
¶
打开浏览器,按下面选择的选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
block_ads
|
阻止向约 3,500 个已知广告或跟踪域名发送请求,可与
|
dns_over_https
|
通过 Cloudflare 的 DNS-over-HTTPS 发送 DNS 查询,避免使用代理时发生 DNS 泄露。
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/fetchers/stealth_chrome.py
会话类¶
HTTP 会话¶
scrapling.fetchers.FetcherSession
¶
FetcherSession(
impersonate="chrome",
http3=False,
stealthy_headers=True,
proxies=None,
proxy=None,
proxy_auth=None,
timeout=30,
headers=None,
retries=3,
retry_delay=1,
follow_redirects="safe",
max_redirects=30,
verify=True,
cert=None,
selector_config=None,
proxy_rotator=None,
)
创建已配置 Fetcher 会话的上下文管理器。
在 'with' 或 'async with' 代码块中使用时,这个管理器会提供一个采用默认配置的新会话。建议每个管理器实例同时只用于一个活动会话,或按顺序创建多个会话。已有会话运行时,不允许用同一个实例再次进入上下文。
| 参数 | 说明 |
|---|---|
impersonate
|
要模拟的浏览器版本。可以是单个浏览器字符串,或用于随机选择的字符串列表。默认使用最新可用的 Chrome 版本。
类型:
|
http3
|
是否使用 HTTP3,默认为 False。与
类型:
|
stealthy_headers
|
生成并添加真实浏览器请求头,包括 Google referer,默认开启。
类型:
|
proxies
|
要使用的代理字典,格式为 {"http": proxy_url, "https": proxy_url}。 |
proxy
|
要使用的代理 URL,格式为 "http://username:password@localhost:8030"。不能与
类型:
|
proxy_auth
|
代理的 HTTP Basic 认证,格式为 (username, password) 元组。 |
timeout
|
超时前等待的秒数。 |
headers
|
会话中每次请求都会发送的请求头。 |
retries
|
重试次数,默认为 3。
类型:
|
retry_delay
|
重试之间的等待秒数,默认为 1 秒。
类型:
|
follow_redirects
|
是否跟随重定向。默认为 "safe",跟随重定向但拒绝指向内部或私有 IP 的目标,以防范 SSRF。传入 True 可不受限制地跟随所有重定向。
类型:
|
max_redirects
|
最大重定向次数,默认为 30,设为 -1 表示不限制。
类型:
|
verify
|
是否验证 HTTPS 证书,默认为 True。
类型:
|
cert
|
客户端证书和密钥的文件名元组,格式为 (cert, key)。 |
selector_config
|
创建最终 Selector 对象时传入的参数。
类型:
|
proxy_rotator
|
用于自动轮换代理的 ProxyRotator 实例。
类型:
|
源代码位于 scrapling/engines/static.py
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"_default_impersonate",
"_stealth",
"_default_proxies",
"_default_proxy",
"_default_proxy_auth",
"_default_timeout",
"_default_headers",
"_default_retries",
"_default_retry_delay",
"_default_follow_redirects",
"_default_max_redirects",
"_default_verify",
"_default_cert",
"_default_http3",
"selector_config",
"_client",
"_is_alive",
"_proxy_rotator",
)
__enter__
¶
创建并返回新的同步 Fetcher 会话。
源代码位于 scrapling/engines/static.py
__exit__
¶
源代码位于 scrapling/engines/static.py
__aenter__
async
¶
创建并返回新的异步会话。
源代码位于 scrapling/engines/static.py
__aexit__
async
¶
源代码位于 scrapling/engines/static.py
隐身浏览器会话¶
scrapling.fetchers.StealthySession
¶
基类: SyncSession, StealthySessionMixin
flowchart TD
scrapling.fetchers.StealthySession[StealthySession]
scrapling.engines._browsers._base.SyncSession[SyncSession]
scrapling.engines._browsers._base.StealthySessionMixin[StealthySessionMixin]
scrapling.engines._browsers._base.BaseSessionMixin[BaseSessionMixin]
scrapling.engines._browsers._base.SyncSession --> scrapling.fetchers.StealthySession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.fetchers.StealthySession
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
click scrapling.fetchers.StealthySession href "" "scrapling.fetchers.StealthySession"
click scrapling.engines._browsers._base.SyncSession href "" "scrapling.engines._browsers._base.SyncSession"
click scrapling.engines._browsers._base.StealthySessionMixin href "" "scrapling.engines._browsers._base.StealthySessionMixin"
click scrapling.engines._browsers._base.BaseSessionMixin href "" "scrapling.engines._browsers._base.BaseSessionMixin"
使用页面池的隐身浏览器会话管理器。
使用页面池的浏览器会话管理器。默认使用持久浏览器上下文和临时用户配置目录。
| 参数 | 说明 |
|---|---|
record_requests
|
保存已完成的浏览器请求和响应。失败或尚未完成的请求会被省略,默认为 False。
|
max_recorded_requests
|
每个会话最多保留的请求数,默认为 1,000,旧条目会被移除。
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。
|
源代码位于 scrapling/engines/_browsers/_stealth.py
network
instance-attribute
¶
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"_config",
"_context_options",
"_browser_options",
"_user_data_dir",
"_headers_keys",
"max_pages",
"page_pool",
"_max_wait_for_page",
"playwright",
"context",
)
__validate_routine__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_context_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__validate__
¶
源代码位于 scrapling/engines/_browsers/_base.py
save_state
¶
将 Cookie、本地存储和 IndexedDB 保存到与 Playwright 兼容的 JSON 文件。
需要已启动且未启用代理轮换的会话。不保存 sessionStorage。
源代码位于 scrapling/engines/_browsers/_base.py
load_state
¶
使用与 Playwright 兼容的 JSON 文件替换 Cookie、本地存储和 IndexedDB。
需要已启动且未启用代理轮换的会话。获取或重新加载页面后,才能使用恢复的登录状态。
源代码位于 scrapling/engines/_browsers/_base.py
close_pages
¶
close
¶
关闭所有资源。
源代码位于 scrapling/engines/_browsers/_base.py
__enter__
¶
__exit__
¶
get_pool_stats
¶
获取当前页面池的统计信息。
start
¶
为此实例及上下文创建浏览器。
源代码位于 scrapling/engines/_browsers/_stealth.py
fetch
¶
打开浏览器,按所选选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
wait_selector_state
|
等待
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
proxy
|
覆盖代理轮换器和会话代理的固定代理。会为它创建并使用新的浏览器上下文。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/engines/_browsers/_stealth.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | |
scrapling.fetchers.AsyncStealthySession
¶
基类: AsyncSession, StealthySessionMixin
flowchart TD
scrapling.fetchers.AsyncStealthySession[AsyncStealthySession]
scrapling.engines._browsers._base.AsyncSession[AsyncSession]
scrapling.engines._browsers._base.StealthySessionMixin[StealthySessionMixin]
scrapling.engines._browsers._base.BaseSessionMixin[BaseSessionMixin]
scrapling.engines._browsers._base.AsyncSession --> scrapling.fetchers.AsyncStealthySession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.fetchers.AsyncStealthySession
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
click scrapling.fetchers.AsyncStealthySession href "" "scrapling.fetchers.AsyncStealthySession"
click scrapling.engines._browsers._base.AsyncSession href "" "scrapling.engines._browsers._base.AsyncSession"
click scrapling.engines._browsers._base.StealthySessionMixin href "" "scrapling.engines._browsers._base.StealthySessionMixin"
click scrapling.engines._browsers._base.BaseSessionMixin href "" "scrapling.engines._browsers._base.BaseSessionMixin"
使用页面池的异步隐身浏览器会话管理器。
使用页面池的浏览器会话管理器。默认使用持久浏览器上下文和临时用户配置目录。
| 参数 | 说明 |
|---|---|
record_requests
|
保存已完成的浏览器请求和响应。失败或尚未完成的请求会被省略,默认为 False。
|
max_recorded_requests
|
每个会话最多保留的请求数,默认为 1,000,旧条目会被移除。
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。
|
源代码位于 scrapling/engines/_browsers/_stealth.py
network
instance-attribute
¶
network = NetworkRecorder(
enabled=record_requests,
max_requests=max_recorded_requests,
asynchronous=True,
)
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"_config",
"_context_options",
"_browser_options",
"_user_data_dir",
"_headers_keys",
)
__validate_routine__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_context_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__validate__
¶
源代码位于 scrapling/engines/_browsers/_base.py
save_state
async
¶
将 Cookie、本地存储和 IndexedDB 保存到与 Playwright 兼容的 JSON 文件。
需要已启动且未启用代理轮换的会话。不保存 sessionStorage。
源代码位于 scrapling/engines/_browsers/_base.py
load_state
async
¶
使用与 Playwright 兼容的 JSON 文件替换 Cookie、本地存储和 IndexedDB。
需要已启动且未启用代理轮换的会话。获取或重新加载页面后,才能使用恢复的登录状态。
源代码位于 scrapling/engines/_browsers/_base.py
close_pages
async
¶
关闭会话池中的所有标签页。下一次请求会打开新的标签页。
close
async
¶
关闭所有资源。
源代码位于 scrapling/engines/_browsers/_base.py
__aenter__
async
¶
__aexit__
async
¶
get_pool_stats
¶
获取当前页面池的统计信息。
start
async
¶
为此实例及上下文创建浏览器。
源代码位于 scrapling/engines/_browsers/_stealth.py
fetch
async
¶
打开浏览器,按所选选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
wait_selector_state
|
等待
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
proxy
|
覆盖代理轮换器和会话代理的固定代理。会为它创建并使用新的浏览器上下文。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/engines/_browsers/_stealth.py
541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 | |
远程会话¶
scrapling.fetchers.RemoteSession
¶
基类: _RemoteSessionMixin, StealthySession
flowchart TD
scrapling.fetchers.RemoteSession[RemoteSession]
scrapling.engines._browsers._remote._RemoteSessionMixin[_RemoteSessionMixin]
scrapling.engines._browsers._stealth.StealthySession[StealthySession]
scrapling.engines._browsers._base.SyncSession[SyncSession]
scrapling.engines._browsers._base.StealthySessionMixin[StealthySessionMixin]
scrapling.engines._browsers._base.BaseSessionMixin[BaseSessionMixin]
scrapling.engines._browsers._remote._RemoteSessionMixin --> scrapling.fetchers.RemoteSession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.engines._browsers._remote._RemoteSessionMixin
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
scrapling.engines._browsers._stealth.StealthySession --> scrapling.fetchers.RemoteSession
scrapling.engines._browsers._base.SyncSession --> scrapling.engines._browsers._stealth.StealthySession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.engines._browsers._stealth.StealthySession
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
click scrapling.fetchers.RemoteSession href "" "scrapling.fetchers.RemoteSession"
click scrapling.engines._browsers._remote._RemoteSessionMixin href "" "scrapling.engines._browsers._remote._RemoteSessionMixin"
click scrapling.engines._browsers._stealth.StealthySession href "" "scrapling.engines._browsers._stealth.StealthySession"
click scrapling.engines._browsers._base.SyncSession href "" "scrapling.engines._browsers._base.SyncSession"
click scrapling.engines._browsers._base.StealthySessionMixin href "" "scrapling.engines._browsers._base.StealthySessionMixin"
click scrapling.engines._browsers._base.BaseSessionMixin href "" "scrapling.engines._browsers._base.BaseSessionMixin"
A CDP browser session that creates its own context or borrows the default context.
使用页面池的浏览器会话管理器。默认使用持久浏览器上下文和临时用户配置目录。
| 参数 | 说明 |
|---|---|
record_requests
|
保存已完成的浏览器请求和响应。失败或尚未完成的请求会被省略,默认为 False。
|
max_recorded_requests
|
每个会话最多保留的请求数,默认为 1,000,旧条目会被移除。
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。 Connect to a remote browser when the session starts.
|
cdp_url
|
HTTP or WebSocket CDP endpoint of an existing Chromium browser.
类型:
|
new_context
|
Create and close a separate context. If False, keep the existing default context open and ignore useragent, locale, timezone_id, proxy, proxy_rotator and additional_args.
类型:
|
kwargs
|
Shared session and page options. Browser launch options do not apply. Cookies and init scripts affect the shared context when new_context is False.
类型:
|
源代码位于 scrapling/engines/_browsers/_remote.py
network
instance-attribute
¶
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"_config",
"_context_options",
"_browser_options",
"_user_data_dir",
"_headers_keys",
"max_pages",
"page_pool",
"_max_wait_for_page",
"playwright",
"context",
)
__validate_routine__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_context_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_options__
¶
源代码位于 scrapling/engines/_browsers/_remote.py
__validate__
¶
源代码位于 scrapling/engines/_browsers/_base.py
start
¶
为此实例及上下文创建浏览器。
源代码位于 scrapling/engines/_browsers/_stealth.py
save_state
¶
将 Cookie、本地存储和 IndexedDB 保存到与 Playwright 兼容的 JSON 文件。
需要已启动且未启用代理轮换的会话。不保存 sessionStorage。
源代码位于 scrapling/engines/_browsers/_base.py
load_state
¶
使用与 Playwright 兼容的 JSON 文件替换 Cookie、本地存储和 IndexedDB。
需要已启动且未启用代理轮换的会话。获取或重新加载页面后,才能使用恢复的登录状态。
源代码位于 scrapling/engines/_browsers/_base.py
close_pages
¶
close
¶
关闭所有资源。
源代码位于 scrapling/engines/_browsers/_base.py
__enter__
¶
__exit__
¶
get_pool_stats
¶
获取当前页面池的统计信息。
fetch
¶
打开浏览器,按所选选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
wait_selector_state
|
等待
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
proxy
|
覆盖代理轮换器和会话代理的固定代理。会为它创建并使用新的浏览器上下文。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/engines/_browsers/_stealth.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | |
scrapling.fetchers.AsyncRemoteSession
¶
基类: _RemoteSessionMixin, AsyncStealthySession
flowchart TD
scrapling.fetchers.AsyncRemoteSession[AsyncRemoteSession]
scrapling.engines._browsers._remote._RemoteSessionMixin[_RemoteSessionMixin]
scrapling.engines._browsers._stealth.AsyncStealthySession[AsyncStealthySession]
scrapling.engines._browsers._base.AsyncSession[AsyncSession]
scrapling.engines._browsers._base.StealthySessionMixin[StealthySessionMixin]
scrapling.engines._browsers._base.BaseSessionMixin[BaseSessionMixin]
scrapling.engines._browsers._remote._RemoteSessionMixin --> scrapling.fetchers.AsyncRemoteSession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.engines._browsers._remote._RemoteSessionMixin
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
scrapling.engines._browsers._stealth.AsyncStealthySession --> scrapling.fetchers.AsyncRemoteSession
scrapling.engines._browsers._base.AsyncSession --> scrapling.engines._browsers._stealth.AsyncStealthySession
scrapling.engines._browsers._base.StealthySessionMixin --> scrapling.engines._browsers._stealth.AsyncStealthySession
scrapling.engines._browsers._base.BaseSessionMixin --> scrapling.engines._browsers._base.StealthySessionMixin
click scrapling.fetchers.AsyncRemoteSession href "" "scrapling.fetchers.AsyncRemoteSession"
click scrapling.engines._browsers._remote._RemoteSessionMixin href "" "scrapling.engines._browsers._remote._RemoteSessionMixin"
click scrapling.engines._browsers._stealth.AsyncStealthySession href "" "scrapling.engines._browsers._stealth.AsyncStealthySession"
click scrapling.engines._browsers._base.AsyncSession href "" "scrapling.engines._browsers._base.AsyncSession"
click scrapling.engines._browsers._base.StealthySessionMixin href "" "scrapling.engines._browsers._base.StealthySessionMixin"
click scrapling.engines._browsers._base.BaseSessionMixin href "" "scrapling.engines._browsers._base.BaseSessionMixin"
An async CDP session that creates its own context or borrows the default context.
使用页面池的浏览器会话管理器。默认使用持久浏览器上下文和临时用户配置目录。
| 参数 | 说明 |
|---|---|
record_requests
|
保存已完成的浏览器请求和响应。失败或尚未完成的请求会被省略,默认为 False。
|
max_recorded_requests
|
每个会话最多保留的请求数,默认为 1,000,旧条目会被移除。
|
headless
|
以无头模式运行,不显示窗口,这是默认设置;也可以显示浏览器窗口。
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
useragent
|
指定 User-Agent 字符串。未指定时,Fetcher 会生成并使用相同浏览器的真实 User-Agent。
|
cookies
|
为下一次请求设置 Cookie。
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
init_script
|
JavaScript 文件的绝对路径,在此会话中的每个页面创建时执行。
|
locale
|
区域设置,例如
|
timezone_id
|
修改浏览器时区,默认使用系统时区。
|
wait_selector_state
|
等待
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
real_chrome
|
如果设备上已安装 Chrome,启用此选项后,Fetcher 会启动并使用它。
|
hide_canvas
|
为 Canvas 操作添加随机噪声,防止指纹识别。
|
block_webrtc
|
强制 WebRTC 遵守代理设置,避免泄露本地 IP 地址。
|
allow_webgl
|
默认开启。关闭后会完全禁用 WebGL 和 WebGL 2.0。不建议关闭,因为很多 WAF 会检查 WebGL 是否启用。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
proxy
|
请求使用的代理,可以是字符串,或仅包含 'server'、'username'、'password' 的字典。
|
user_data_dir
|
用户数据目录的路径,用于保存 Cookie、本地存储等浏览器会话数据。默认创建临时目录。
|
extra_flags
|
启动浏览器时传入的额外参数列表。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
additional_args
|
传给 Playwright 上下文的额外设置,优先级高于 Scrapling 设置。 Connect to a remote browser when the session starts.
|
cdp_url
|
HTTP or WebSocket CDP endpoint of an existing Chromium browser.
类型:
|
new_context
|
Create and close a separate context. If False, keep the existing default context open and ignore useragent, locale, timezone_id, proxy, proxy_rotator and additional_args.
类型:
|
kwargs
|
Shared session and page options. Browser launch options do not apply. Cookies and init scripts affect the shared context when new_context is False.
类型:
|
源代码位于 scrapling/engines/_browsers/_remote.py
network
instance-attribute
¶
network = NetworkRecorder(
enabled=record_requests,
max_requests=max_recorded_requests,
asynchronous=True,
)
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"_config",
"_context_options",
"_browser_options",
"_user_data_dir",
"_headers_keys",
)
__validate_routine__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_context_options__
¶
源代码位于 scrapling/engines/_browsers/_base.py
__generate_options__
¶
源代码位于 scrapling/engines/_browsers/_remote.py
__validate__
¶
源代码位于 scrapling/engines/_browsers/_base.py
start
async
¶
为此实例及上下文创建浏览器。
源代码位于 scrapling/engines/_browsers/_stealth.py
save_state
async
¶
将 Cookie、本地存储和 IndexedDB 保存到与 Playwright 兼容的 JSON 文件。
需要已启动且未启用代理轮换的会话。不保存 sessionStorage。
源代码位于 scrapling/engines/_browsers/_base.py
load_state
async
¶
使用与 Playwright 兼容的 JSON 文件替换 Cookie、本地存储和 IndexedDB。
需要已启动且未启用代理轮换的会话。获取或重新加载页面后,才能使用恢复的登录状态。
源代码位于 scrapling/engines/_browsers/_base.py
close_pages
async
¶
关闭会话池中的所有标签页。下一次请求会打开新的标签页。
close
async
¶
关闭所有资源。
源代码位于 scrapling/engines/_browsers/_base.py
__aenter__
async
¶
__aexit__
async
¶
get_pool_stats
¶
获取当前页面池的统计信息。
fetch
async
¶
打开浏览器,按所选选项发送请求。
| 参数 | 说明 |
|---|---|
url
|
目标 URL。
类型:
|
google_search
|
默认开启,Scrapling 会设置 Google referer 请求头。
|
timeout
|
页面所有操作和等待的超时时间,单位为毫秒,默认为 30,000。
|
wait
|
所有步骤完成后,在关闭页面并返回
|
page_action
|
用于自动化的函数,接收
|
page_setup
|
接收
|
extra_headers
|
要添加到请求中的额外请求头字典。同时使用时,
|
disable_resources
|
阻止不必要的资源请求以提高速度。类型包括
|
blocked_domains
|
要阻止请求的域名集合,也会匹配子域名。例如,
|
wait_selector
|
等待指定 CSS 选择器达到指定状态。
|
wait_selector_state
|
等待
|
network_idle
|
等待页面至少连续 500 ms 没有网络连接。
|
load_dom
|
等待页面上的所有 JavaScript 加载并执行,默认开启。
|
pierce_shadow
|
将开放的 Shadow DOM 内容加入响应 HTML,默认为 False。
|
solve_cloudflare
|
返回响应前,处理所有类型的 Cloudflare Turnstile 和 Interstitial 挑战。
|
selector_config
|
创建最终 Selector 对象时传入的参数。
|
proxy
|
覆盖代理轮换器和会话代理的固定代理。会为它创建并使用新的浏览器上下文。
|
| 返回 | 说明 |
|---|---|
Response
|
一个 |
源代码位于 scrapling/engines/_browsers/_stealth.py
541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 | |