Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Граббер Otbet.ru
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Граббер Otbet.ru

Страниц (1): [1]
 

1. SultanOFF - 29 Марта, 2009 - 14:15:18 - перейти к сообщению
Здравствуйте. Подмигивание Хочу написать граб сайта otbet.ru, чтобы разместить его у себя на wap портале. Это сайт онлайн решебников, пригодится любому ученику с грецким орехом в скорлупе на месте мозга. Заходить с операМини на эту страницу-сущое издевательство над тонкой натурой школьников, это столько трафика прожирает пока загрузишь напичканную по самое нехочу рекламой страницу, да и + к этому чтобы увидеть рисунок с решением нужно выставить качество отображения картинок на самое высокое ибо иначе что там написано просто не прочесть, уж слишком мелко! Пхп Я только начал учить, знаю только основы и понятно что самостоятельно написать граб не в Моих силах, нужна помощь более опытных джедаев этого языка. Страницу с номерами заданий граблю так:
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. error_reporting(0);
  3. //$rootpath = '../../';
  4. include_once '../sys/inc/start.php';
  5. include_once '../sys/inc/compress.php';
  6. include_once '../sys/inc/sess.php';
  7. include_once '../sys/inc/home.php';
  8. include_once '../sys/inc/settings.php';
  9. include_once '../sys/inc/db_connect.php';
  10. include_once '../sys/inc/ipua.php';
  11. include_once '../sys/inc/fnc.php';
  12. $banpage=true;
  13. include_once '../sys/inc/user.php';
  14.  
  15. //only_reg();
  16. $set['title']='Игого';
  17. include_once '../sys/inc/thead.php';
  18.  
  19. title();
  20. err();
  21. aut();
  22. header("Content-type:text/html; charset=utf-8");
  23. $content = file_get_contents("http://www.otbet.ru/gdz/Al10/1/");
  24.  
  25. $pos = strpos($content, "<tr align=\"center\"><td class=\"txt\" width=\"500\" bgcolor=\"#EE8600\"><a href=\"http://www.otbet.ru/content/Al10/1/1/ij4zmqn.html\"");
  26.  
  27. /*Отрезаем все, что идет до нужной нам позиции (функция substr в данном случае принимает два параметра: строка для обработки и //номер позиции. Функция вернет строку, НАЧИНАЯ с указанной позиции) */
  28. $content = substr($content, $pos);
  29.  
  30. // Точно таким же образом находим позицию второй строки
  31. $pos = strpos($content, "http://www.otbet.ru/content/Al10/1/1/4hzziKb.html");
  32.  
  33. // Отрезаем нужное количество символов от нулевого
  34. $content = substr($content, 0, $pos);
  35. // выводим полученную строку.
  36. echo '<table bgcolor="DarkOrchid" background="DeepSkyBlue1" align="left" border="0" cellspacing="1" cellpadding="0">'.$content.'</table>';
  37. include_once '../sys/inc/tfoot.php';
  38. ?>
  39.  

Функционирует все как положено, отображаются именно так как Я и задумывал, но нужно скреативить вторую главную часть, и вот именно тут Я впал в беспросветный ступор, даже примерно не могу сообразить как осуществить то что необходимо, а нужно в принципе вот что, о чем Я и хотел спросить у уважаемых обитателей форума:
Благодаря коду который Я привел выше на Моем сайте отображаются номера заданий без лишней рекламы и прочей громоздкой информации. Получается таблица с номерами, при нажатии на любой из них открывается в отдельном окне сайт otbet.ru с нужным решением но с рекламой и тяжелым дизайном otbet.ru. И соответсвенно вопрос: как заменить эту лабуду своими данными? Есть идеи?
2. valenok - 29 Марта, 2009 - 17:16:20 - перейти к сообщению
Во первых кэшировал бы ты это всё у себя на сервере..
Во вторых сделай чтоб ссылка вела на твой скрипт который грабит информацию уже с той страницы откуда надо.
3. SultanOFF - 29 Марта, 2009 - 18:26:30 - перейти к сообщению
valenok пишет:
Во первых кэшировал бы ты это всё у себя на сервере..
Во вторых сделай чтоб ссылка вела на твой скрипт который грабит информацию уже с той страницы откуда надо.

Валенок вот Я и хочу узнать на данном примере как это сделать, не моГ бы ты привести пример? Пожалуйста Закатив глазки
4. Stierus - 30 Марта, 2009 - 11:06:32 - перейти к сообщению
Многа букаф, возьмусь только за $
5. SultanOFF - 30 Марта, 2009 - 19:13:14 - перейти к сообщению
Stierus это вообще то сайт не фрилансеров, раздел помощи новичкам. Здесь помогают, обьясняют, поясняют что не понимает молодой кодер, а не деньги пытаются у него выманить. Если бы Я хотел за мани то зашел бы во фриланс. Нахмурился Кто может пояснить как Мне осуществить то что Я расписал выше? Однако
6. valenok - 30 Марта, 2009 - 19:42:12 - перейти к сообщению
Ну прав он, я тоже ничего разъяснять не стану, слишком много =)
Попробуй что нибудь сам, а по конкретным маленьким частям спрашивай.
7. SultanOFF - 30 Марта, 2009 - 20:20:41 - перейти к сообщению
Валенок а про что посоветуешь копать?
8. Roler - 30 Марта, 2009 - 21:40:58 - перейти к сообщению
SultanOFF
К центру земли где-то)
Ты делай, я не пойму никак, что тебе непонятно. По отдельным вопросам здесь всегда помогут.
9. Stierus - 31 Марта, 2009 - 09:38:48 - перейти к сообщению
SultanOFF, ты не нервничай, "выманивать" никто ни у кого ничего не собирается, ты много на себя берёшь в этом плане, а по поводу фриланс или нет - раздел фрилансовый тут есть, вот я тебя туда и направил. Если ты думаешь, что адекватные люди тут будут принимать ТЗ на реализацию бесплатно - ты ошибаешься. Задай ты нормальный вопрос (сделал то-то и то-то, вот тут загвоздка, как можно реализовать вот то-то) - ответ был бы нормальным. Ну а так как ты тупо выложил исходник скрипта, поленившись избавиться даже от инклуда лишних библиотек - то и ответ тебе соответствующий.
(Добавление)
Про кеширование: как уже писал valenok, нужен кэш, реализовать ты его можешь хоть на фалах, хоть на основе базы данных. Суть заключается в том, что при парсинге (у тебя парсинга нет, просто обрезка лишнего) otbet.ru, ты не просто выводишь пользователю результат, но и сохраняешь у себя на сервере то, что обрезал, а при следующем запросе пользователя того же самого, ты не полезешь снова на otbet.ru, а просто возьмёшь из своего хранилища (думать над тем, какое время актуальен кэш и прочее - тебе, только ты знаешь, как часто меняются вопросы, ответы и тд). По поводу второго пункта валенка:
пользователь заходит на твой сайт, таблица ему показывается на твоем сайте, но с otbet.ru, что тебе мешает заменить ссылки на otbet.ru ссылками на свой скрипт, который точно так же будет обрезать ответы с otbet.ru, как и вопросы ? Проще говоря создаешь файл otvet.php, который будет делать тоже самое, что и выложенный тобой скрипт, но запрашивать с otbet.ru не таблицу вопросов, а ответы на них. Ну а в своем выложенном скрипте заменяй ссылки на свои.
10. valenok - 31 Марта, 2009 - 13:24:36 - перейти к сообщению
что значит про что "куда копать " ?
Ты же уже написал граббер ссылок.. напиши и граббер остального контента
что тут копать то?
11. SultanOFF - 31 Марта, 2009 - 14:40:56 - перейти к сообщению
Люди если быть конкретным то Мне вот что непонятно: таблицу с номерами вопросов Я загружаю благодаря коду который вырезает все лишнее с одного адреса а конкретней с _http://www[dot]otbet[dot]ru/gdz/Al10/1/ В таблице около 300 номеров с ссылками на ответы, получается Мне каждый ответ обрабатывать нужно отдельно? Огорчение неужели на php нельзя реализовать обработку автоматом? Если можно то как?
12. magistr_bender - 10 Апреля, 2009 - 23:29:59 - перейти к сообщению
можно!
у меня есть парсеры на 10 сатйтов разных, могу поделиться...
или читай статью у меня на сайте
http://codeismy[dot]name/archives/27
и
http://codeismy[dot]name/archives/293
если их объеденить и сделать рекурсию по ссылкам то получится какраз то что тебе надо

 

Powered by ExBB FM 1.0 RC1