Как можно копировать себе на сайт, постоянно обновляемые данные с других сайтов, например с 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
К примеру, мы хотим копировать только что появившиеся объявления на авито в разделе дома. Объявления должны содержать все данные в том числе и номер телефона. Как известно, на авито телефон отображается в виде изображения, но это не помеха.
Итак, метод о котором пойдет речь, подходит ко всем сайтам.
Смысл заключается в том, что мы перепрограммируем открытую страницу сайта в браузере(хром) через консоль. Т.е. Как бы не мы будем брать информацию, а сам сайт нам ее будет отсылать.
Наши действия и логика функции:
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