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

С чего начать сбор данных: план на первую неделю

Егор Пастухов
Егор Пастухов
Новичок
сообщений 78
с июл, второй сезон
8 июня, 11:17первое сообщение

Работаю в закупках, руками свожу прайс поставщика в таблицу, уходит полдня каждую неделю. Хочу собирать это скриптом.

Питон немного знаю, на уровне «прочитать файл, посчитать сумму». Дальше начинается туман: везде пишут про потоки, заголовки, обходы, и с какого конца браться, непонятно.

Есть у кого-нибудь план на первую неделю, чтобы двигаться по шагам и не утонуть?

mnogoruk
mnogoruk
Ветеран
сообщений 2050
с мар
15 ноября, 14:34#2

План есть, он у всех примерно одинаковый. Главное правило первой недели: одна новая вещь за раз.

План на первую неделю
План на первую неделю

Первый день целиком уходит на одну страницу. Открываете её curl без всяких скриптов и смотрите, приехал ли нужный текст.

curl -s "https://postavshchik.example/katalog/123" -o stranica.html
grep -c "cena" stranica.html

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

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

Четвёртый: список из полусотни адресов, пауза между обращениями, запись в журнал. Пятый: повторы при ошибках и продолжение с того места, где остановились. Шестой: выгрузка и сверка десяти карточек глазами. Седьмой: расписание.

Егор Пастухов
Егор Пастухов
Новичок
сообщений 78
с июл, второй сезон
22 апреля, 17:51#3
mnogoruk: одна новая вещь за раз

Это понятно, спасибо. Не понял только про четвёртый день. Пауза между обращениями зачем, если можно быстрее?

proxy_hands
proxy_hands
Знаток
сообщений 1405
с мая
1 сентября, 08:08#4

Затем, что скорость тут вам пока враг.

Сайт поставщика живёт своей жизнью, и полсотни обращений подряд без единой паузы выглядят со стороны сервера ровным пулемётным темпом. Человек так не ходит: у него между страницами то две секунды, то тридцать. В ответ вы получаете отказы, а разбираться в них на первой неделе тяжело, потому что вы ещё не отличаете свою ошибку от чужого отказа.

Ставьте паузу с разбросом, скажем от полутора до четырёх секунд, и первую неделю живите на одном потоке. Полсотни страниц пройдут за пару минут, вам этого хватит с запасом.

И ещё две вещи, которые новички пропускают, а потом переделывают всё заново.

Первая: сохраняйте сырьё. Скачали страницу, положили html на диск под именем артикула, и только потом разбирайте. Когда разбор ошибётся, у вас на руках останется исходник и не придётся ходить на сайт заново.

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

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
8 февраля, 11:25#5

Про сверку глазами добавлю, потому что этот шаг чаще всего пропускают.

Когда выгрузка первый раз соберётся, откройте её рядом с сайтом и проверьте десять карточек подряд. Именно десять и именно подряд, без выборки наугад из середины. Обычно на этом всплывает пара вещей: где-то в цифру заехал пробел, где-то название обрезано по первой запятой.

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

Егор Пастухов
Егор Пастухов
Новичок
сообщений 78
с июл, второй сезон
15 июля, 14:42#6

понял, записал. про сохранение сырья вообще не догадался бы

gremlin_dv
gremlin_dv
Знаток
сообщений 1840
с мар
22 декабря, 17:59#7

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

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

Это задача не первой недели, просто держите в голове, куда всё вырастет.

три монитора и ни одного свободного
mnogoruk
mnogoruk
Ветеран
сообщений 2050
с мар
1 мая, 08:16#8

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

Егор Пастухов
Егор Пастухов
Новичок
сообщений 78
с июл, второй сезон
8 октября, 11:33#9

Отчитываюсь, неделя прошла.

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

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

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