Как стать автором
Обновить
2
0
Михаил Юрьевич @Forbidden

CEO, CTO

Отправить сообщение
20 минут это очень долго, программист просто выпадет из контекста, мы стремимся к 1-2 минуте

cypress можно параллелить из коробки или через sorry-cypress
Любая защита приводит к деградации UX, например постоянные каптчи или задержка 5с при валидации CF. Всякие фильтры по IP/прокси/VPN приводят к отвалу сразу большого % легитимных юзеров, например множество сайтов блокируют доступ с серверных IP, при этом такое же множество клиентов использует VPN на своих серверах

Не вижу смысла защищаться от парсинга, только от такого, который создает нагрузку(правильной настройкой rate-limit например)

Небольшое уточнение, A-Parser не сервис, он standalone, windows/linux(headless)
привет, мы парсим, яндекс и любые другие поисковые системы
Всегда интересно было какие алгоритмы проектируются для экстремальных ситуаций, помимо банальной экстренной остановки, например когда против правил на тебя летит Камаз по встречке)
Спасибо, многое прояснилось) Посоветуйте аналогичный материал по правильному расположению элементов на странице
Вывод оказался в неожиданном месте :)
Для всех кто хочет упростить себе жизнь и получать данные проще и быстрее — наша команда подготовила статью по сбору данных с IMDB с помощью A-Parser: a-parser.com/resources/269

Мы собрали базу в 182370 фильма за 1.5 часа, база в формате JSON доступна по линку в конце статьи
Привет из Perl'а, где «разворачивание» массивов(и даже хэшей) по ссылке — это конструкция языка уже больше 20 лет
Таких возможностей много, например staticperl
Сидим на pg 10 с 3ей беты на продакшене, в первую очередь из за встроенного партицирования, полет отличный. Печально что логическая репликация не поддерживает репликацию схемы
а переводчик как то привязывает фразу к расположению в конкретном элементе программы/сервиса? или он в слепую переводит фразы?
Отличная идея, есть ли калькулятор чтобы оценить бюджет? Есть ли опция исправления «корявых» исходных фраз на английском? — беда многих команд из СНГ
Можно будет купить запись?
Однозначно придется покупать :)
Можно изобретать велосипеды, а можно взять A-Parser и получить из коробки многопоточность, работу с regex и XPath, сложные парсеры можно целиком писать на JavaScript(ES6)
в Perl модулях необходимость возвращать true связанна с этапом компиляции, на котором выполняется код модуля и есть возможность вернуть false если что то пошло не так. смешные цитаты про бесполезность и раздражение ))
paste.org.ru/?8jfpe7
Requests per second: 4483.65 [#/sec] (mean)
#!/usr/bin/perl

use strict;
use warnings;
$|++;


use IO::Socket::INET;
use EV;


my $sock = IO::Socket::INET->new(Listen => 10000, LocalPort => 8882, Blocking => 0, Proto => 'tcp') or die "Can't bind : $@\n";

my @evs;
push(@evs,EV::io $sock,EV::READ,\&accept);

sub accept
{
        my $newsock = $sock->accept;
        $newsock->blocking(0);
        push(@evs,EV::io $newsock,EV::READ,\&request);
        $evs[-1]->data(scalar(@evs)-1);
};

sub request
{
        my $data;
        $_[0]->fh->sysread($data,128);

        my $content = "HTTP/1.1 200 OK\r\n"
                        . "Server: EV/2009-09-12\r\n"
                        . "Content-Type: text/html\r\n"
                        . "Connection: close\r\n\r\n"
                        . "<html><body><h1>Hello from Habr</h1></body></html>";
        $_[0]->fh->syswrite($content);
        $_[0]->fh->close;
        undef $evs[$_[0]->data()];
        undef $_[0];
};


EV::loop();

1 поток:
#ab -n 10000 -c 30 http://localhost:8882/

Requests per second: 7099.00 [#/sec] (mean)

пример очень упрощен, отсутсвуют какие либо проверки, но скорость говорит за себя
если ещё добавить prefork…


Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность