grozzzny

На Пикабу
поставил 2 плюса и 0 минусов
Награды:
10 лет на Пикабу
- рейтинг 0 подписчиков 1 подписка 2 поста 0 в горячем

Как можно копировать себе на сайт, постоянно обновляемые данные с других сайтов, например с Avito

Всем привет! Расскажу секрет

К примеру, мы хотим копировать только что появившиеся объявления на авито в разделе дома. Объявления должны содержать все данные в том числе и номер телефона. Как известно, на авито телефон отображается в виде изображения, но это не помеха.

Итак, метод о котором пойдет речь, подходит ко всем сайтам.

Смысл заключается в том, что мы перепрограммируем открытую страницу сайта в браузере(хром) через консоль. Т.е. Как бы не мы будем брать информацию, а сам сайт нам ее будет отсылать.

Наши действия и логика функции:

1. Открываем сайт, где список публикаций. В нашем примере это объявления о продаже домов.
2. "Говорим браузеру" открывать эту страницу во фрейме каждые 5 минут.
3. "Браузер" запоминает список объявлений по id и сравнивает с предыдущем обновлением.
4. Если "браузер" обнаружил при очередном обновлении главного фрейма новое объявление, то он открывает это объявление в новом фрейме и запоминает всю информацию.
5. Если в новом фрейме объявления, скрыт номер телефона, то просим "Браузер", перейти по ссылке "показать номер" также через вновь созданный еще один фрейм. По сути так можно глубоко углубляться и путешествовать по страницам сайта, собирая все больше и больше информации.
6. Запомнив все данные, создаем форму и отправляем к себе на сайт.

Теперь к практике.

Есть рабочий инструмент: http://tvoi-doma.com/
Есть список объявлений: https://m.avito.ru/kaliningradskaya_oblast/doma_dachi_kottedzhi

Вставляем эту функцию в консоль хрома и нажимаем ентер.

setTimeout(function(){
document.body.innerHTML='';

var iframe = document.createElement('iframe');
iframe.id='avito_iframe1';
iframe.allowtransparency=true;
iframe.frameborder=0;
iframe.style.width='100%';
iframe.scrolling='auto';

var time = new Date().getTime();
iframe.setAttribute('status',time);
iframe.src=document.location.href;
document.body.appendChild(iframe);

iframe.contentWindow.onload = function(){
document.getElementById('avito_iframe1').style.height=document.getElementById('avito_iframe1').contentWindow.document.body.clientHeight+'px';
var bitem = document.getElementById('avito_iframe1').contentWindow.document.getElementsByClassName('item-link');

setTimeout(function(){avito_scan(bitem)},60000);
}

function hasRepeat(text,array){
var ret;
for(var z=0; z2*60*1000){
for(var i=0; i
Показать полностью

Пикабу ) спаси всех ))

Развод на айфон в вконтакте!!!
Пикабу ) спаси всех )) Развод на айфон в вконтакте!!!
Отличная работа, все прочитано!