The library gives you two levers most tools do not: an address per context and full control over what the page is allowed to fetch.
Contexts are isolated, so each can carry its own address. That makes parallel work with different identities straightforward.
Keep the mapping explicit and log it, because debugging a mixed-up context is unpleasant.
Route handlers let you abort requests for images, fonts and advertising before they leave. The saving is measured in multiples.
Each context costs memory. On a machine with sixteen gigabytes, around twenty contexts is a sensible upper limit.
Past that the machine starts swapping and the run slows down for reasons that have nothing to do with the network.
Contexts left open leak steadily. Long runs die overnight from this more often than from any network problem.
ctx = browser.new_context(proxy={"server": PROXY})
ctx.route("**/*.{png,jpg,woff2}", lambda r: r.abort())Сервис не оплатил переходы с площадки, поэтому кнопка перехода к нему закрыта. Место в рейтинге от оплаты не зависит и считается по общей формуле.
Карточка сервиса с характеристиками остаётся открытой, её видно на странице сервиса.