Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСофт и программы

ZennoPoster или свой скрипт: где проходит граница

mnogoruk
mnogoruk
Ветеран
сообщений 2050
с мар
1 мая, 08:52первое сообщение

Спорим об этом с напарником третий месяц. Он собирает всё в ZennoPoster мышкой, я пишу на питоне и смотрю на его кубики с сомнением.

По факту у обоих работает. У него быстрее собирается первый рабочий вариант, у меня легче правится через полгода и дешевле по памяти. Хочется услышать, где граница проходит у тех, кто держал оба подхода на боевых задачах.

Задачи у нас типовые: заполнить форму, забрать выгрузку, разложить по папкам.

zavarka
zavarka
Участник
сообщений 435
с ноя
8 октября, 11:09#2

Граница проходит по браузеру. Если задача живёт без него, скрипт выигрывает всухую.

чайник кипит, скрипт бежит
dobrynin_a
dobrynin_a
Знаток
сообщений 1690
с апр
15 марта, 14:26#3

Подпишусь под zavarka и разверну, потому что вопрос упирается в память и в живучесть.

Одна вкладка настоящего браузера отъедает от трёхсот мегабайт, и это самое дно замера. Двадцать параллельных вкладок кладут машину с шестнадцатью гигабайтами почти наверняка. Тот же прогон на голых запросах держит триста соединений и отъедает памяти меньше, чем сам браузер в простое.

Дальше про живучесть. Кубики ломаются от смены разметки ровно так же, как селекторы в коде, только чинить их надо мышкой в редакторе, и посмотреть глазами, что именно поменялось, тяжелее. Разница вылезает через полгода, когда автора шаблона рядом нет.

И третье, обидное. Шаблон трудно положить в хранилище и посмотреть, что менялось от версии к версии. Скрипт лежит текстом, разница видна построчно, откат занимает секунду.

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
22 августа, 17:43#4

А если на странице всё рисуется скриптами и без браузера пусто? У меня половина задач такая.

zavarka
zavarka
Участник
сообщений 435
с ноя
1 января, 08:00#5

Ольга Ветрова, откройте вкладку сети в отладчике и посмотрите, откуда страница берёт содержимое. В девяти случаях из десяти там обычный обмен по адресу с json, и запрашивать можно прямо его. Браузер нужен, когда обмен подписан хитрым образом и подпись считается на месте.

куда смотреть перед выбором
куда смотреть перед выбором
чайник кипит, скрипт бежит
mnogoruk
mnogoruk
Ветеран
сообщений 2050
с мар
8 июня, 11:17#6
zavarka: там обычный обмен по адресу с json

Проверил на трёх наших площадках. На двух правда json, причём удобнее того, что мы выковыривали из разметки. Третья считает подпись на месте, там напарник со своими кубиками уместен.

Похоже, граница идёт по месту, где считается подпись. Сам инструмент тут вторичен.

anton_zzz
anton_zzz
Новичок
сообщений 96
с июн, второй сезон
15 ноября, 14:34#7

подскажите, а гибрид это как? браузер и скрипт вместе в одном прогоне?

dobrynin_a
dobrynin_a
Знаток
сообщений 1690
с апр
22 апреля, 17:51#8

anton_zzz, браузером проходят вход и получают ключ сессии, дальше ключ отдают обычным запросам и тянут уже ими. Один браузер на старте вместо двадцати на весь прогон.

ctx = browser.new_context()
page = ctx.new_page()
page.goto(URL_VHODA)
page.fill("#login", user); page.fill("#pass", secret)
page.click("button[type=submit]"); page.wait_for_load_state("networkidle")
cookies = {c["name"]: c["value"] for c in ctx.cookies()}
browser.close()

s = requests.Session() s.cookies.update(cookies) s.proxies = {"http": PROXY, "https": PROXY} ```

После этого гоняете сессию в двести потоков, и памяти уходит как под текстовый редактор.

Настя Лужина
Настя Лужина
Новичок
сообщений 265
с янв, второй сезон
1 сентября, 08:08#9

Мы так и живём полгода. Отдельно скажу про адреса: когда параллель выросла с двадцати до двухсот, отдача с одного адреса перестала тянуть. Взяли приватные серверные адреса с безлимитным трафиком, выдача списком забирается прямо в скрипт, ротация внутри пула идёт сама.

Под браузерную часть хватает одного соединения, она работает пару минут на старте.

mnogoruk
mnogoruk
Ветеран
сообщений 2050
с мар
8 февраля, 11:25#10

Собрал разговор к столбику, чтобы напарнику показать:

Что в задачеЧем брать
разметка отдаётся серверомзапросы
содержимое приходит по jsonзапросы
подпись считается на страницебраузер
вход и дальше тысячи страницбраузер на вход, запросы дальше
десяток разовых форм в месяцкубики, быстрее собрать

Спор кончился ничьей, разделили задачи по строкам таблицы.

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
15 июля, 14:42#11

Ушла смотреть вкладку сети. По первой площадке уже вижу json, спасибо.