Парсер для сайта

Парсер для сайта

Сообщение karabok2 »

Тема такая, кто не помнит, учусь значит я в меде, есть у нас сайт - fesmu

На сайте есть библиотека, но методички не скачать, можно скачивать только по одной странице, например

Код: Выделить всё
http://www.fesmu.ru/elib/PdfViewer/source.aspx?id=1551&pagenumber=1


По этой ссылке файл pdf с одной страницей. Как не странно догадаться следующие документы имеют тип:

Код: Выделить всё
http://www.fesmu.ru/elib/PdfViewer/source.aspx?id=1551&pagenumber=n где n= от 1 до 144


Реально ли замутить программу, с выставленным диапазоном, которая сама будет называть файл форматом n.pdf в отдельной папке? я не думаю, что для наших умельцев сложно) Помогите студенту

Рейтинг серверов — ТОП10 ◄
Аватара пользователя
karabok2

 
Группа: Специалист ruSEO
Сообщения: 2314
Рефералы: -4
Зарегистрирован: 29 ноя 2013
Откуда: Хабаровск
Средств на руках: 8.95
Статус: Медик
Re: Парсер для сайта

Сообщение birds »

Коту напиши, он тебе сделает парсер за вискас))
Аватара пользователя
birds
Администратор
 
Группа: Зарегистрированные пользователи
Сообщения: 20672
Рефералы: -208
Зарегистрирован: 24 авг 2010
Откуда: местный житель
Средств на руках: -7.82
Статус: летящий вперед
Спонсор
 
Re: Парсер для сайта

Сообщение k0ttee »

Код: Выделить всё
<?php
###############################################################
# настройки: цифры без обрамлений, текст в одинарных кавычках #
###############################################################

$minimum = 1; #минимум
$maximum = 14; #максимум

$format = 'pdf'; #формат сохраняемых файлов
$papka = '1551'; #имя папки для файлов

$sleep = 1; #секунд между запросами

$template = 'http://www.fesmu.ru/elib/PdfViewer/source.aspx?id=1551&pagenumber='; #шаблон без переменной

################
# подготовочка #
################

if(!is_dir($papka)){ #если не создана папка
   mkdir($papka, 0777); #создать папку (с разрешением на запись - если в линуксе)
}

############################################
# цикличная работа от минимум до максимума #
############################################

for ($i = $minimum; $i <= $maximum; $i++) {
   $data = file_get_contents($template.$i); #берём данные из интернетов
   file_put_contents($papka.'/'.$i.'.'.$format, $data); #пишем данные на диск
   echo $i."\n"; #отчитываемся на экран
   sleep($sleep); #пауза
}
?>


Скриншот 2020-02-18 в 8.58.52.png
Скриншот 2020-02-18 в 8.58.52.png (18.52 КБ) Просмотров: 127

Скриншот 2020-02-18 в 8.58.38.png
Скриншот 2020-02-18 в 8.58.38.png (26.38 КБ) Просмотров: 127


Там при пролистывании страниц, обрабатывается форма. Кроме того - в форме скрытое поле против роботов.
Нельзя просто так взять и натащить страниц топорным способом.

Скриншот 2020-02-18 в 9.01.27.png
Скриншот 2020-02-18 в 9.01.27.png (24.16 КБ) Просмотров: 126
Последний раз редактировалось k0ttee 18 фев 2020, 09:05, всего редактировалось 1 раз.
Биткоины на вискас для кота слать на этот адрес: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12033
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 3.45
Re: Парсер для сайта

Сообщение karabok2 »

я конечно все понимаю, но я не волоку... как мне это все реализовать?

Добавлено спустя 3 минуты 19 секунд:
короче не реально это сделать, я правильно понял?
Рейтинг серверов — ТОП10 ◄
Аватара пользователя
karabok2

 
Группа: Специалист ruSEO
Сообщения: 2314
Рефералы: -4
Зарегистрирован: 29 ноя 2013
Откуда: Хабаровск
Средств на руках: 8.95
Статус: Медик
Re: Парсер для сайта

Сообщение k0ttee »

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

Синим выделен адрес PDF.

Скриншот 2020-02-18 в 9.27.03.png
Скриншот 2020-02-18 в 9.27.03.png (110.96 КБ) Просмотров: 115


Добавлено спустя 15 минут 39 секунд:
короче не реально это сделать, я правильно понял?

Ща попробую их нахлобучить. :-D

Добавлено спустя 8 минут 21 секунду:
Таки нахлобучил. Решение малость грязное, но работает. :rolf: :rolf: :rolf:

Скриншот 2020-02-18 в 9.45.50.png
Скриншот 2020-02-18 в 9.45.50.png (76.45 КБ) Просмотров: 112


Я сделяль.

Код: Выделить всё
<?php
################################################################
# настройки: цифры без обрамлений, строки в одинарных кавычках #
################################################################

$minimum = 1; #минимум
$maximum = 14; #максимум

$papka = '1551'; #папка для сохранения файлов (это не цифра, это имя папки)

$template = 'http://www.fesmu.ru/elib/PdfViewer/source.aspx?id=1551&pagenumber='; #шаблон без перебираемого N в конце

$sleep = 1; #секунд между запросами
$format = 'pdf'; #формат сохраняемых файлов

################
# подготовочка #
################

if(!is_dir($papka)){ #если не создана папка
   mkdir($papka, 0777); #создать папку (с разрешением на запись - если в линуксе)
}

$direct_way_to_pdf_files = 'http://www.fesmu.ru/elib/PdfViewer/'; #прямой путь к PDF

############################################
# цикличная работа от минимум до максимума #
############################################

for ($i = $minimum; $i <= $maximum; $i++) {
   $direct_link = file_get_contents($template.$i); #берём страницу

   $direct_link = preg_replace("#\r\n#", "", $direct_link); #сношу символы конца строки
   $direct_link = preg_replace("#\n\r#", "", $direct_link); #сношу символы конца строки
   $direct_link = preg_replace("#\n#", "", $direct_link); #сношу символы конца строки

   #расковыриваем прямой путь к файлу
   $direct_link = preg_replace("#(.*)<input type=\"hidden\" name=\"PdfFileName\" id=\"PdfFileName\" value=\"#", "", $direct_link); #сношу до нужного
   $direct_link = preg_replace("#\"(.*)#", "", $direct_link); #сношу после нужного

   #получаю нужный документ
   $data = file_get_contents($direct_way_to_pdf_files.$direct_link);

   file_put_contents($papka.'/'.$i.'.'.$format, $data); #пишем данные на диск
   echo $i."\n"; #отчитываемся на экран
   sleep($sleep); #пауза
}
?>


Добавлено спустя 4 минуты 47 секунд:
Собственно...
1.) две цифры диапазона
2.) имя папки, куда сохранять это барахло (если папка не существует - скрипт создаст её)
3.) шаблон ссылки без цифры в конце

Не обязательно к настройке...
1.) пауза между запросами, чтобы не быть уж слишком похожим на робота
2.) формат сохраняемых файлов, это тупо расширение для имён файлов

Добавлено спустя 1 час 9 минут 1 секунду:
Коту напиши, он тебе сделает парсер за вискас))

https://zooshef.ru/tovary_dlya_koshek/k ... k/whiskas/
Биткоины на вискас для кота слать на этот адрес: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12033
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 3.45
Re: Парсер для сайта

Сообщение Платон Щукин »

Дернул get запросом заголовки и содержимое из страницы http://www.fesmu.ru/elib/PdfViewer/sour ... genumber=2 ,
хотя заголовки не нужны
Парсим значение на скрине:

2020-02-18_15-02-41.png
2020-02-18_15-02-41.png (8.34 КБ) Просмотров: 96


Адрес pdf документа есть :dance:
Остальное дело техники
ЧТО ВИЖУ - О ТОМ ПОЮ
Аватара пользователя
Платон Щукин

 
Группа: Специалист ruSEO
Сообщения: 899
Зарегистрирован: 03 ноя 2011
Средств на руках: 435.50
Статус: Аццкий Тролль
Re: Парсер для сайта

Сообщение karabok2 »

Я не знаю как пользоваться тем, что мне дали( Я хочу программу
Рейтинг серверов — ТОП10 ◄
Аватара пользователя
karabok2

 
Группа: Специалист ruSEO
Сообщения: 2314
Рефералы: -4
Зарегистрирован: 29 ноя 2013
Откуда: Хабаровск
Средств на руках: 8.95
Статус: Медик
Re: Парсер для сайта

Сообщение Платон Щукин »

karabok2 писал(а):программу

Я так и не понял, что в конечном итоге нужно?
Выдернуть все страницы? Или что?
ЧТО ВИЖУ - О ТОМ ПОЮ
Аватара пользователя
Платон Щукин

 
Группа: Специалист ruSEO
Сообщения: 899
Зарегистрирован: 03 ноя 2011
Средств на руках: 435.50
Статус: Аццкий Тролль
Re: Парсер для сайта

Сообщение k0ttee »

Я так и не понял, что в конечном итоге нужно?
Выдернуть все страницы? Или что?

Кот всё уже запилил.
karabok2 не умеет из винды запускать php.
Биткоины на вискас для кота слать на этот адрес: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Аватара пользователя
k0ttee

 
Группа: Специалист ruSEO
Сообщения: 12033
Рефералы: 2
Зарегистрирован: 02 май 2014
Средств на руках: 3.45
Re: Парсер для сайта

Сообщение prolisk »

karabok2 писал(а):Я не знаю

karabok2 писал(а):Я хочу

Ну или обьяснить детально и попросить,
или заплатить :)

За это сообщение автора prolisk поблагодарил:
Платон Щукин
Аватара пользователя
prolisk

 
Группа: Супермодераторы
Сообщения: 14493
Рефералы: 5
Зарегистрирован: 07 янв 2011
Откуда: С той стороны экрана.
Средств на руках: -1.30
Статус: django
След.

Вернуться в Курилка

 


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48