Пускам уебсайт за клиент, където те показват голяма база данни с информация, която са събрали точно и бавно през годините. Те намират своите данни в мрежата на различни места. Повече от вероятно това се дължи на скрепер, който преминава през страницата им в страница и извлича необходимата информация в собствена база данни. И в случай, че се чудите, те знаят, че това са техните данни заради единично засадено парче данни във всяка категория на сайта им.
През последните няколко дни направих много проучвания за това и мога да ви кажа, че няма идеално решение за улов. Въпреки това открих няколко неща, за да направя това по-трудно за тях. Това е, което реализирах за клиента.
Ajaxified paginated данни
Ако имате много страници на данни и пагинизирате данните си, като просто добавите различен номер в края на вашия URL адрес, т.е. http://www.domain.com/category/programming/2 - тогава правите работата на гусеницата, която е много по-лесна. Първият проблем е, че е в лесно разпознаваем модел, така че поставянето на скрепер на тези страници е лесно като пай. Втори проблем, независимо от URL адреса на следващите страници в категорията, повече от вероятно е да има следваща и предишна връзка, за която да се закрепят.
Чрез зареждане на страници от данни чрез javascript без презареждане на страница, това значително усложнява работата за много скрепери там. Само наскоро Google започна да анализира JavaScript на страница. Има малък недостатък при презареждането на подобни данни. Предоставяте няколко страници с по-малко страници, които Google може да индексира, но, технически, страничните данни трябва да са насочени към страницата с коренна категория чрез канонизация. Разширявайте страниците си от страници с данни.
Случайно извеждане на шаблона
Скрепери често ще бъдат леко персонализирани за вашите данни. Те ще се прикачат към определен идентификатор на div или клас за заглавието, 3-та клетка във всеки ред за вашето описание и др. Има лесен за идентифициране модел за повечето скрепери, които работят с най-много данни, идващи от същата таблица, се показва по същия шаблон. Рандомизирайте своите идентификационни номера и имена на класове, вмъкнете произволно колони от празни таблици с 0 ширина. Показвайте данните си в таблица на една страница, в стилове divs и комбинация от друг шаблон. Като представяте данните си предвидимо, те могат да бъдат бракувани предвидимо и точно.
Гърне за мед
Това е доста спретнато в своята простота. Попаднах на този метод на няколко страници за предотвратяване на изстъргване на сайта.
- Създайте нов файл на вашия сървър, наречен gotcha.html.
- Във вашия файл robots.txt добавете следното:
Потребителски агент: *
Дезактивиране: /gotcha.html
Това казва на всички роботи и паяци там, които индексират вашия сайт, за да не индексират файла gotcha.html. Всеки нормален уеб браузър ще спазва желанията на вашия файл robots.txt и няма достъп до този файл. т.е. Google и Bing. Всъщност може да искате да изпълните тази стъпка и да изчакате 24 часа, преди да преминете към следващата стъпка. Това ще гарантира, че даден браузър да не бъде блокиран случайно от вас поради факта, че той вече е бил в средна обход, когато сте актуализирали файла си robots.txt. - Поставете връзка до gotcha.html някъде на вашия уебсайт. Няма значение къде. Препоръчвам обаче в долния колонтитул, уверете се, че тази връзка не се вижда в CSS, дисплей: няма;
- Сега влезте в IP / общата информация на костура, посетил тази страница и ги блокирайте. Като алтернатива можете да излезете със скрипт, който да им предостави неверни данни и данни за боклука. Или може би приятно лично съобщение от вас до тях.
Редовните зрители в мрежата няма да могат да видят връзката, така че случайно няма да бъдат кликнати. Уважаемите роботи (например Google) ще спазват желанията на robots.txt и няма да посещават файла. И така, единствените компютри, които трябва да се натъкнат на тази страница, са тези със злонамерени намерения или някой, който преглежда изходния ви код и произволно щрака наоколо (и добре, ако това се случи).
Има няколко причини, поради които това не винаги може да работи. Първо, много скрепери не функционират като нормални уеб-търсачи и не откриват само данните, като следвате всяка връзка от всяка страница на вашия сайт. Често скреперите са изградени, за да се фиксират на определени страници и да следват само определени структури. Например, може да се стартира скрепер на страница с категории и след това да бъде казано само да посещава URL адреси с думата / данните в плъха. Второ, ако някой пуска своя скрепер в същата мрежа като другите и се използва споделен IP адрес, ще имате забрана на цялата мрежа. Трябва наистина да имате много популярен уебсайт, за да може това да е проблем.
Пишете данни в изображения в движение
Намерете по-малко поле от данни, а не непременно дълги низове от текст, тъй като това може да затрудни стилизирането на страницата. Извеждайки тези данни вътре в изображението, чувствам се доста уверен, че има методи във почти всеки език за програмиране, за да пишете текст в изображение динамично (в php, imagettftext). Това е може би най-ефективно с цифрови стойности, тъй като числата осигуряват много по-незначително предимство на SEO.
алтернатива
Това не беше вариант за този проект. Изискване за влизане след определено количество прегледи на страници или показване на ограничен обем от данни, без да сте влезли в системата. Т.е. ако имате 10 колони, показвайте само 5 на невлизащи потребители.
Не правете тази грешка
Не се притеснявайте да опитате да излезете с някакво решение, базирано на потребителския агент на бота. Тази информация може лесно да бъде подправена от скрепер, който знае какво правят. Google ботът например може лесно да се емулира. Повече от вероятно не искате да забраните на Google.
