LINUX.ORG.RU

Помогите дёрнуть базу телефонных номеров с avito.ru по регионам?

 ,


2

4

К сожалению на avito.ru телефонные номера сохраняются в виде картинок, можно было бы надёргать картинки а потом методом разгадывания капчи написать парсер для них, но нет.

К счастью, на m.avito.ru, мобильной версии сайта, телефонные номера отображаются в виде текста, если на них кликнуть. Окей, уже что-то.

Необходимо выкачать wget'ом все странички, которые содержат некую часть URL, например начинаются с пути «/krasnoyarskiy_kray_sosnovoborsk» (таким образом сделав выборку по конкретному региону), а затем, в идеале, выводить это в один файл (поток). wget этого делать не умеет, ругается, что опцию "-O -" и "--recursive" нельзя использовать вместе, а жаль, я бы тогда тут-же grep'ал по региону и ходил по объявлениям дальше.. Ладно, хрен с ним, сделаем «руками».

Дальше, для примера возьмём объявление https://m.avito.ru/krasnoyarskiy_kray_sosnovoborsk/kvartiry/2-k_kvartira_60_m_55_et._879022547

Жмякаем по кнопочке «Показать номер», выбираем Inspect Element, и смотрим чего она там отправляет. Помимо стандартных Cookie ещё добавляется заголовок X-Requested-With: XMLHttpRequest, но следует заметить, что ни куки, ни этот заголовок движок avito на наличие не проверяет. Оно проверяет один единственный Referer и GET-параметр ?async. Окей.

Грабим ссылку, по которой показывается номер.

# URL="https://m.avito.ru/krasnoyarskiy_kray_sosnovoborsk/kvartiry/2-k_kvartira_60_m_55_et._879022547"
# wget -O - "${URL}" | grep /phone/ | cut -d \" -f 2
https://m.avito.ru/krasnoyarskiy_kray_sosnovoborsk/kvartiry/2-k_kvartira_60_m_55_et._879022547/phone/80c112fbcb7e8f6a347f542cc90ff2ab

Добавилось /phone и то что идёт после него, вот по этой ссылке надо жмякать. Жмякаем.

# TEL="/phone/80c112fbcb7e8f6a347f542cc90ff2ab"
# wget -O - --referer="${URL}" "${URL}${TEL}?async"
{"phone": "8 XXX XXX-XX-XX"}

Получаем успешный JSON-ответ, отлично. (номер был изменён, но он есть, не суть важно)

Проблема в том, что после N попыток avito меня забанил, он забанил не конкретно меня, а wget. Я уж гуглил-гуглил на тему спуфинга UA и прочих параметров, которые обычно передаёт браузер, но тщетно бытие, господа, avito распознаёт, когда к нему я захожу через браузер — отображает страничку, а когда сууюсь через wget, выдаёт мне это.

Мы обнаружили, что запросы, поступающие с вашего IP-адреса, похожи на автоматические.
Мы были вынуждены временно заблокировать доступ к сайту.

Щито поделать, десу? Как сделать вид, что wget это браузер?

★★★★★

Используй PhantomJS, а лучше не занимайся мутной деятельностью

anonymous
()

Эх, Спуфинг, Спуфинг.. Не ожидал от тебя такого.

anonymous
()
Ответ на: комментарий от Venediktov

Похоже на кражу персональных данных, не?

Не.

Кража персональных данных - это когда твой знакомый мент сливает тебе данные на твоего должника, или когда тебе домой звонит неизвестный менегер и предлагает мебель по сходной цене.

Deleted
()

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

PHPFan
()

сторож подался во все тяжкие

vvviperrr ★★★★★
()

Продолжал бы ты лучше fvwm свой конфигурить, спуфя.

А так поставь себя на место авито. Какой-то малолетний долбоёб с 1 IP адреса парсит тыщи страничек, что бы ты с ним сделал? Правильно, забанил бы.

Так что без кучи проксь тут никак спуфя, и JS это лишь конечная проблема. Нормальный чел больше 10 страничек за единицу времени не откроет, а если он это делает, то это сцуко бот. Даже с учётом тотального NATa везде.

anonymous
()
Ответ на: комментарий от PHPFan

Что делать - уважать волю владельцев сайта.

Не-а. Зачем уважать зажравшихся барыг. Нужно их грокнуть. Как, это уже другой вопрос. Может тупой парсинг вообще не самое лучшее решение слива их базы.

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

anonymous
()
Ответ на: комментарий от Deleted

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

anonymous
()
Ответ на: комментарий от PHPFan

Это не их данные.
И вообще, половина телефонных номеров с avito принадлежат левым посредническим конторкам, а уж в разделе «недвижимость» наверно, все 9/10.

anonymous
()
Ответ на: комментарий от anonymous

Не-а. Зачем уважать зажравшихся барыг.

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

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это уже детали. Важно, что менегеры уловили уровень купле-продажности ментов и телекомов, поэтому звонят точечно.

Я в своей берлоге ночую не часто, но менегер пару раз исхитрился таки застать. Короче, АОН решил весь вопрос =)

Но как только у телекома сменится админ, или кто там ещё имеет доступ к базе, звонки возобновятся.

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

Хотя сейчас безбашенность зашкаливает, так что...

Deleted
()
Ответ на: комментарий от Hertz

2 чаю, сделал моё утро!

Спуф бери phantomjs и вперде!

ggrn ★★★★★
()

Шпоофинг, что ты делаешь? Прекрати!

Bagrov ★★★★★
()
Ответ на: комментарий от anonymous

Информация должна быть свободна

Смотря какая. Бывает такая, которую знать не каждому одинаково полезно. Например, цвет моих трусов =)

должны выкладывать дампы своей базы, как это делает, например, википедия

Никто ничего никому не должен, если иное не зафиксировано договорами и не скреплено печатями.

Википедию, пожалуйста, вслух не употребляй.

Deleted
()
Последнее исправление: rht (всего исправлений: 1)

господа, avito распознаёт, когда к нему я захожу через браузер — отображает страничку, а когда сууюсь через wget, выдаёт мне это.

Я был худшего мнения о сабже. Впрочем когда я туда захожу через браузер у меня всегда ваш ip заблокирован.

anonymous_sama ★★★★★
()
Ответ на: комментарий от darkenshvein

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

Spoofing ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

а винду переустановить это вообще пару раз на экран мышкой тыкнуть, но ведь денег же просят, сволочи!

но спрашивал я не поэтому.
ты это все забесплатно кому то делаешь?

darkenshvein ★★★★★
()

Если написать программу при помощи webkit или там что поновее, может так оно поверит что браузер?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от dk-

Наверное хочет продать квартиру, купить квартиру, а на разницу купить 3 новых монитора :)

Harald ★★★★★
()

Там все сложнее, чем ты думаешь. Пиши в личку, могу продать готовый скрипт на python.

cheerfulboy
()
Ответ на: комментарий от Deleted

Просто звонят, как правило, с неизвестного номера. А сидеть слушать звон и не брать трубку как-то не похоже на решение.

Jayrome ★★★★★
()
Ответ на: комментарий от Spoofing

десять строчек кода, а пять рублей заработаю.

чёрта-с два, ты ведь не первый у них. пробуй. они тебя по ip забанят. как уже упомянули, без кучи прокси такие вещи не делаются в современном мире.

AndreyKl ★★★★★
()

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

Я за бан. Честно. После этой темы ЛОР из клуба любителей свободного ПО начинает плавное превращение в клуб спамеров. Ещё не поздно это остановить.

anonymous
()
Ответ на: комментарий от anonymous

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

Авито это и есть говнософт от СЕОшников для спамеров и жулья, собирающий чужие личные данные.

Deleted
()
Ответ на: комментарий от anonymous

После этой темы ЛОР из клуба любителей свободного ПО начинает плавное превращение в клуб спамеров.

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

anonymous
()

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

tiandrey ★★★★★
()
Ответ на: комментарий от Venediktov

Они же в открытом доступе, какая ещё кража? Поисковики тогда тоже воруют персональные данные.

th3m3 ★★★★★
()
Ответ на: комментарий от Venediktov

Человеки сами выложили всю инфу о себе. Какая тут кража?

LupusAlbus
()

Читай журнал «Какир» в каком-то из номеров за 2015-й год был пример парсера на Го, который работал через тор-прокси.

Легких путей здесь нет.

Twissel ★★★★★
()

google:rotating proxies
Для js, php, python точно должны быть либы

e1nste1n ★★★★★
()

Как сделать вид, что wget это браузер?

Не страдай хернёй, возьми PhantomJS, как уже советовали. На крайний случай можешь поковырять Selenium.

no-such-file ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.