Как стать автором
Обновить

Комментарии 69

НЛО прилетело и опубликовало эту надпись здесь
А дальше что вы делаете с этими данными?
НЛО прилетело и опубликовало эту надпись здесь
Узнатьбабло

Давно я не видел так отвратительно оформленных сайтов.
Текстовое наполнение недалеко ушло от оформления
Подсчёт ведётся искусственным интеллектом на квантовых вычислениях блокчейна глубокого обучения крипто-нейросети.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
сумма просмотров * на фиксированную сумму???
мой канал на Вашем сайте заработал 500$, на деле 200$
НЛО прилетело и опубликовало эту надпись здесь

Раньше это называли парсингом, а ботов — парсерами

«Потому что парсинг не может дорого стоить, а веб-скрапинг может»© :)

p.s.: Мы в свое время писали грабберы для онлайн-веб-игрух, с веб-интерфейсом для поиска по данным, ну и немного ботами. Карта допустим изначально в тумане войны, сканируешь допустим карту, потом позволяешь искать по ней нужные данные, автомазитировать какие-то действия ботом можно быол. Было достаточно популярно, но потом в веб-игры пришла активная монетизация, парсеры ограничили, а аналогичную инфу стали за реал продавать прямо в игре. Сейчас эта тема почти везде заглохла. А жаль, было интересно.

p.p.s.: Tihon_V CloudFlare не особо мешает. Бот поумнее с эмуляцией браузера, несколько хороших ИПшников, работа через tor и т.д… Защита у клоудфайра, если она не параноидальная (при которой уже юзеры еще не страдают то есть), настроена в первую очередь на ддос, а не на ботов.
да были, времена… сам писал ботов для онлайн-флеш игр и с автоматическим управлением и с распознаванием текста из графики, чтоб находить ресурсы на карте или, например, мониторить цены на аукционах. правда к тому парсингу, как я его понимаю, это никакого отношения не имело, т.к. по сути тут идет получение данных, которых в прямом(текстовом) доступе нет, возможно, это и будет скраппингом.
«Потому что парсинг не может дорого стоить, а веб-скрапинг может» :)

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

А ещё раньше (в дремучих 90-х) — краулерами и даже пауками! :-)

Первое название до сих пор изредка используется, второе вижу первый раз, но я в те времена в этой области не работал.
Замечу, что основная цель защиты от ботописателей не в том, чтобы не отдать данные, а в том, чтобы долбо… не положили сервак. Т.к. многие… считают, что 100 запросов в секунду для магазина на джумле на шаредхостинге не вызывают никаких проблем:).
Выложите xls/csv-файлик с записями, и это будет дешевле, чем подключать капчу и прочие хитрости. Да и пользователей не так злить будет. Вот серьёзно, когда даже магазины компьютерной техники ни хрена не предоставляют скачиваемого прайса, вынуждая пользоваться их убогим поиском и тормознутым сайтом, чтоб найти нужный товар или просто просмотреть ассортимент, просто зла не хватает.

Я очень долго думал, какие прайс-листы могут быть у DNS. "Узнать все ip-адреса google.com"? "Сутки кеширования вашей A-записи"?


Потом открыл спойлер и до меня медленно дошло, да.

Те, кто поумнее, либо позволяют забирать данные в виде JSON или XML, либо, да, вывешивают в виде ссылки для скачивания файла. А если не хотят делиться просто так, если, к примеру, там какие-то данные имеющие коммерческую ценность, то продают доступ к ним за деньги. И в большинстве случаев, заказчик просто покупает доступ, выдаёт описание API, если таковой есть, и все довольны: источник получает свой кусочек денег, я получаю свой, потому что нужна какая-то обработка (иначе он ко мне не придут с заказом), а заказчик — данные в удобной форме.

Кстати, в США суд вообще запретил препятствовать работе ботов, собирающих данные, выложенные в общий доступ: какая разница, тыкается ли человек в браузере сам или это делает от его имени программа?
а можно ссылку на это пожалуйста?
На что именно?
Кстати, в США суд вообще запретил препятствовать работе ботов, собирающих данные, выложенные в общий доступ: какая разница, тыкается ли человек в браузере сам или это делает от его имени программа?

на это.
Да успокойтесь большая часть бото писателей не пишут парсинг выше 2-3 запросов в секунду.
Точно вам говорю, а если данные через js ещё подгружать то 90% пойдёт selenium расчехлять. )

Для тех кто умеет в 100 запросов в секунду js endpoint сильно упростит жизнь и вам и им.

Можно поставить CloudFlare или найти аналогичное решение, но пользователь будет "наслаждаться" капчей...


Все что может быть прочитано — будет прочитано. Относительно недавно пришлось писать парсер для тематического ресурса про киберспорт. С администраций ресурса связывались, но увы, они не имеют реализованного API (только очень старый бекенд закрытый вышеупомянутым). Пришлось использовать lxml и много прокси-серверов для своевременной актуализации данных.


P.S.: Мне кажется что в 2020 было бы хорошей практикой владельцам ресурсов оставлять контакты в футере, или специальной странице, а людям что парсят данные — читать их.

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

Сервисы по решению капчи в помощь.

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

если хотите обойтись текстом без прогрузки js или изображений — будет сложнее.
Почему не попросят? Ведь меня-то самого в браузере регулярно просят, при обычном нормальном пользовании сервисами.

Я обхожусь прокси с авторотацией. Иногда приходится использовать ещё и puppeteer. Пока проблем с капчей от CloudFlare не возникло, но на некоторых сайтах — важно пробрасывать куки в запрос.

Спасибо, что поделились опытом. Но ведь чтобы получить куки, нужно хотя бы один первый раз пройти капчу? Вручную это сделать?
Если спрашивают однократно, то можно и вручную. У меня был один заказ — программа для работы с одним сервисом. И этот сервис при каждой авторизации спрашивал капчу. Я тупо свалил это на пользователя, показывая картинку в интерфейса и предоставляя поле ввода. Но это, понятно, не общий случай.
Если использовать requests, а лучше — MechanicalSoup, то куки таскаются библиотеками без вмешательства разработчика. Правда, приходится немного поплясать с бубном, если есть желание сохранять эти куки между запусками, но тоже ничего особо сложного. А в от за наводку на puppeteer большое спасибо: иногда раскапывание JS действительно задалбывает. И ладно бы отбивались от роботов, но ведь просто криво всё сделали и забили. «И так сойдёт!»
У нас на сервисе стандартное ограничение 6 запросов в секунду. И даже на таких мелочах частенько приходится снижать лимиты. А некоторые сайты падают просто если в браузере открыть 4-5 вкладок: не представляю как «это» вообще клиентов должно приводить.
Я закладываю таймауты между запросами для бережного отношения к обираемому серверу.
Какое слово-то подобрали — «обираемому»! Начинаю чувствовать себя порождением Зла.

Выгодно перепродавать товары, купленные со скидкой в Hudson's Bay… Долго смеялся.


В Hudson's Bay без скидок затариваются только дурики, которым совсем денег некуда девать. Скидками они привлекают нормальных людей, так как только после скидки цена товаров становится приемлемой

Мне интересно, а как потом эти рубашки перепродают? На каких-нибудь типа авито?

вообще, этот вопрос у меня тоже возник. неужели эта бизнес-идея рабочая?
Если говорить о Канаде, а Hudson's Bay — это канадская сеть магазинов, то в общем и целом — нет. Скидки в магазинах здесь обычно довольно кислые. Причём несколько лет назад, до бурного развития интернет-торговли, нормой было продавать товары по завышенным ценам, а скидками доводить цену до более-менее нормальной и приемлемой. Hudson's Bay, как наиболее старая торговая сеть, по-прежнему использует эту модель.

Здесь есть интернет-площадки, где можно продать ненужные тебе вещи (и попробовать навариться). Я сталкивался с такими: из бесплатных это Craigslist (уже скорее мёртв, чем жив), Kijiji, Facebook Marketplace, из платных это eBay и Amazon (правда Amazon всё более пренебрежительно относится к «одноразовым» продавцам).

Есть ещё «flea market» — блошиные рынки. Но это место скорее для малого бизнеса — там торгуют только лоточники, так как место стоит денег. Весной обычно устраивают домашние распродажи — garage sale, но это скорее, чтобы купить что-то задёшево, чем продать задорого. Есть ещё сезонные фермерские базары (farmers market). Но это тоже, в основном, оптовики от сельского хозяйства. Хотя есть и фермеры, можно купить сельскохозяйственную продукцию напрямую от производителя. Ценник, правда, дороже и, бывает, в разы, чем в магазине. А качество может быть тем же.

Возвращаясь к перепродажам, я иногда пытался просчитать, сколько я могу наварить на той или иной скидке. Но всё упирается в то, что кому надо, это скидку тоже найдут. Остальным оно и со скидкой не надо. Плюс 13% налог, добавляемый магазином к цене. За $10-$15 долларов навара, пытаясь толкнуть в розницу, возиться совсем неохота.

Единственный вариант получить чуток денег почти нахаляву — это брать вещи, которые выставляют другие люди на обочину дороги или, если это многоквартирный дом, где-то в специально отведённом месте, может быть чуть-чуть их починить и почистить — и продать (или оставить себе :). Народу ненужно масса полезных и, частенько, достаточно дорогостоящих вещей, и лениво их продавать. Планшеты, телефоны, лаптопы, десктопы.

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

Напоследок, о Штатах. Там в магазинах на крупных распродажах бывают цены 0 долларов (правда, обычно, не через Интернет). Нужно только заплатить налог на продажу 8-10%, считающийся с цены до скидки. Или когда Amazon вдруг продаёт товары в 10 раз дешевле их нормальной цены. Вот такие моменты можно отлавливать и использовать…
Подобные посты надо писать на индийском языке.
Что это за язык такой? Новый ЯП?
Если бы сайты сразу давали данные в csv, человечество смогло бы сэкономить массу усилий на ненужный парсинг, и освободившееся время потратить на решение естественных, а не искусственно придуманных проблем)
В csv не вставить рекламу :)
Почему? Вполне можно, если постараться. И, как и положено рекламе, она будет бросаться в глаза и раздражать.
НЛО прилетело и опубликовало эту надпись здесь
Зато с xml то все в порядке!
НЛО прилетело и опубликовало эту надпись здесь
К нему есть стандартные инструменты у кого угодно. Чаще — просто прицепляют обёртку вокруг libxml и на этом останавливаются.
Во времена моей молодости такие скрипты называли «грабберами» :)
Согласен с вами.

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

Например, веб-скрапинг это вырезка понравившегося фрагмента html-страницы в собственную копилочку. Так сказать, с целью пополнить «гербарий» юного верстальщика очередным соскобленным div-ом. А то о чем пишет автор поста, это классический парсинг html, то есть разбор страницы сайта на разметочную шелуху и чистые данные.
Извлечь, сграбить, рипнуть, спарсить, скрапить...

веб-лутинг
А есть какие-нибудь инструменты/подходы для скрапинга? Плюс наверняка тут обычными querySelector по dom не обойтись и надо изобретать что-то более высокоуровневое?
Python и Scrapy

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

Я использую MechanicalSoup. Это такая удобная обёртка вокруг requests для добывания данныех с сервера и BeautifulSoup4 для разбора полученного документа. Если работа идёт исключительно с JSON, то хватает requests — библиотека имеет функционал для отдачи сразу десериализованной структуры.

BeautifulSoup умеет бегать по дереву как раз CSS-селекторами, а обёртка умеет удобно отдавать разобранное дерево сразу после загрузки без дополнительных телодвижений.
За MechanicalSoup отдельное спасибо, как раз знакомому делаю небольшой парсер.
Да пожалуйста. Был ещё mechanize, но он работал только со второй веткой Python, поэтому пришлось долго сидеть на ней. При этом, он не отдавал собственно дерево и у таскал с собой третью версию BeautifulSoup, которая была довольно печальной с точки зрения доступа к элементам. Уже было собрался адаптировать mechanize под третий питон и четвёртый «суп», как наткнулся на MechanicalSoup. Сейчас, вроде бы, этот проект — mechanize — начал оживать, но я за ним не слежу.
Когда цена на товар упадёт до определённого уровня,
программа автоматически покупает товар

После покупки товара покупателем магазин должен будет отправить товар покупателю по указанному им адресу.


Затем… перепродаёт его по более высокой цене

Где продаёт? Купленный товар едет к покупателю домой или приехал к нему уж.

НЛО прилетело и опубликовало эту надпись здесь
И сразу есть идея. Веб-скрабить данные для лидогенератора по тематике, например (не суть важно), ремонтно-строительных услуг на Авито и перепубликовать у себя на сайте, с повышением стоимости на 20%. А самому выступать диспетчером.
Искать в интерфейсе Airbnb удобнее чем в экселе. И все настройки для фильтров там есть, и по числу кроватей и по числу мест и по множеству других параметров. При этом результаты поиска отображаются на карте — что важно и удобно.
Ну можно дописать веб интерфейс который будет больше удовлетворять пользователя а не мозолить глаза для прибылли airbnb)
тоже занимаюсь подобным для личного пользования, но полностью некоммерчески — создаю epub-ы из сайтов с текстами (типа такого или такого ), чтобы потом их читать в оффлайне (в транспорте или далеко от цивилизации). Поэтому у меня гуманный скрапинг\грабинг — по полсекунды на страничку и не больше одного запроса на страницу.
Теперь с такими данными работать гораздо легче, чем на сайте. Можно, например, сравнить разные жилища и их особенности. Кроме того, эти данные удобно фильтровать. В моей семье 4 человека. Если мы соберёмся в Рим, то нам понадобится Airbnb-жильё с как минимум 2 кроватями, отличающееся адекватной ценой. Благодаря тому, что все данные собраны в удобном формате, в Excel, с ними можно весьма продуктивно работать. Как оказалось, моим нуждам удовлетворяют 7 результатов из 272.

Так себе пример, учитывая, что на Airbnb существуют удобные фильтры, в том числе и по количеству кроватей. Более того, можно смотреть фотографии не отходя от кассы не переходя в карточку, используя слайдер в результатах поиска.
А еще можно смотреть жилье в определенной части города, используя зум карты, чего уже нельзя сделать в excel. Особенно, когда важно, где именно проживать (центр или черта города).

Пример скрапинга понятен, но пример с Airbnb, увы, неудачный.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий