Текущие доски объявлений меня категорически не устраивают, у них бардак с поиском нужного... И под-разделы по городам меня вымораживают, поэтому я решил для себя создать свою, удобную по поиску, бесплатную, простую доску обьявлений. Да она еще находится в разработке но она уже в 100 раз лучше чем текущие доски, с непонятным функционалом, алгоритмами, ограничениями, непонятно кто и как что там смотрит и т.д... + огромная комиссия за размещения обьявлений...
Сделав доску обьявлений, разумеется ее нужно продвигать, самое простое и бесплатное решение, тупо парсить другие сайты и заполнять свой донорской информацией. Не сразу но со временем ты будешь выскакивать в поисковиках по ключевым запросам автоматически! Что по способствует ее развитию.
Монополия авито, хотел бы акцентировать на этой проблеме особое внимание. Страх, именно он движет руководство этого ресурса, обьясняю почему, они боятся что найдется некий вася пупкин который переплюнет все их старания за 10 лет и их ресурс станет терять популярность, тем самым возрождая конкуренцию, а конкуренция им не нужна потому что они будут вынуждены лояльнее относиться к юзерам. Соответственно лояльность снижает сверхприбыли...
Они же не в состоянии провернуть такую штуку, дать васе пупкину денег и информацию, и посмотреть что он разработает, и если это будет достойный проект то просто купить его... Там просто мозгов не хватит на такое...
Добываю информацию с авито только в без браузерном варианте, нет смысла подключать браузер, у авито эта поганая категоризация, а чтоб по нормальному парсить нужно много потоков... А браузер много памяти жрет...
Итак теперь нам нужно изучить сайт авито и придумать с какой же все таки стороны подойти к нему, чтоб безболезненно забирать у него информацию без банов. Я решил пока парсить один город, этого для моей доски обьявлений будет придостаточно.
Так же на главной авито я заметил блок с новыми обьявлениями, он отдает все обьявления без указания категорий, просто все что есть, за определенный город... + он отдает информацию сразу в json формате что не может не радовать, вот ссылка для получения обьявлений.
https://www.avito.ru/web/1/main/items?forceLocation=false&locationId=621540&lastStamp=1611639754&limit=30&offset=30
Отлично подумал я, и начал парсить, делая запрос каждые 10 секунд, по этому адресу! Тут конечно же надо упомянуть про нужную информацию, мне нужна такая информация, наименование, описание, цена, одна фотка, и ссылка на страницу донор возможно я напишу потом переобходчик страниц, чтоб исключать из базы неактивные обьявления. Выше описанная ссылка предоставляет только такую информацию, наименование, цена, ссылка на страницу и ссылку на фотку. Соответственно мне нужно еще и описание, для этого мне потребуется сделать еще один запрос на страницу для взятия описания. + еще один запрос для скачивания фотки. Итого в одном запросе 3 запроса.
Долбя этот урл некоторое время с одного Ip - адреса, я начал получать 403 и 429 ответы от сервера авито. 403 - ответ означает что забанен ip или забанена вся подсеть ip адресов. 429 - означает что превышено число обращений к серверу и твой ip тоже забанен на время.
Ладно, подумал я, пойдем парсить тогда по стандартным урлам, стандартный урл если что вот, https://www.avito.ru/krasnodar/bytovaya_elektronika, в урле соответственно может быть любой город, и любая категория, неудобство только в том что там много категорий и нужно организовывать дополнительную работу в коде с категориями! Ну да ладно, я решил остановиться только на одной категории и посмотреть как она будет себя вести. По тестив полтора часика этот урл, обращаясь уже один раз в минуту, мне скорость в принципе не нужна, мне нужны сами обьявления, все в принципе было ок, без банов и так далее, доп подзапросы еще не успел по тестить, но я буду со временем дополнять статью, если будут вылезать в процессе парсинга какие-то проблемы.
Цель этого парсинга состоит в минимизации затрат на парсинг, так как авито всячески препятствует получению информации с его ресурса. Весь парсинг не должен превышать стоимость в 100 рублей. 1 прокси х 1 город + не спешный обход категорий в этом городе. Дополнительные тайминги обращений я еще выявлю и отпишу сюда.
Мне например кажется что забирать информацию методом грубой силы кажется мартышкиным трудом потому что тебе придется работать с кучей проксей, делать чекер проксей, вести базу активных не активных и так далее... Аккуратный же способ, подразумевает полный контроль над процессом, а так же минимизацию расходов в процессе! Ты постепенно наращиваешь кол-во проксей в зависимости от твоих потребностей...
UPDATE: 17.02.21 - я по тестировал как следует авито всеми способами, и браузерным вариантом и без браузерным, в общем проблема, в следующем, авито блокирует всех без исключения, за однотипные обращения к серверу, даже если ты являешься реальным, но просто активным юзером! Видимо "русские алеши" в компании решили что блокировка всех подряд, это эффективное решение... Как говориться рубить сук на котором сидишь это вам семечки щелкать))) Смешно конечно, потому что они вот прямо только что расписались в своей не состоятельности! Решение только одно забирать информацию грубой силой, много проксей, много потоков, видимо эти люди приемлют изнасилование их ресурсов как приемлемый вариант! Ок! Будем насиловать! А не филигранно забирать нужную информацию!