Страница 1 из 3
Очень сложная задача! (для меня)
Добавлено: 2009-05-07 9:55:37
spy
Ага... есть такая схемка
Есть таблица в мускуле
Таблица 1
ID | Наименование
---------------------------------------
1 | Продуктовый магазины
2 | Еще какие то магазины
Задача следующая:
При нажатии кнопки "SEND" должно происходить следующее
Программа берет из Таблицы 1 id наименования раздела, например Продуктовые магазины id=1
Получается ссылка
http://sait.com/razdel.php?id=1
Пройдя по ссылке мы видим таблицу вида
Наименование магазина | Дополнительная информация
--------------------------------------------------------------------------
Магазин 1 | Овощной магазин
Магазин 2 | Овощи фрукты
Магазин 3 | Овощной магазин №2
Наименование магазина например: Магазин 1 , тоже является ссылкой.
Во первых нужно определить что это за ссылка.
А во вторых пройдя по этой ссылке собрать необходимую инфу. В данном примере цены на продукты.
После чего записать эту инфу в базу.
Таблица 2
ID | Наименование магазина|Наименование продукта|Цена продукта
--------------------------------------------------------------------------------------------
1 | Магазин 1 |огурцы |35 рублей
2 | Магазин 1 |бананы |40 рублей
3 | Магазин 1 |томаты |75 рублей
и.д. для всех магазинов
Буду благодарен любой инфе... потому что даже незнаю с чего начать

Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 10:03:25
zg
гм.. и правда сложно...
в смысле настолько всё зашифровано... думаю, надо разить работу на этапы.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 10:21:19
spy
zg писал(а):гм.. и правда сложно...
в смысле настолько всё зашифровано... думаю, надо разить работу на этапы.
ага...
Вот тут я смоделировал похожий сайтик
http://spysoft.us/test/
все должно запускаться по кнопке "обновить".
Что должно происходить:
Заходим по ссылке "Продуктовые магазины", попадаем на страницу с таблицей.
Цель номер 1 определить ссылки магазинов в столбце "Наименование магазина".
Цель номер 2 пройти по каждой из этих ссылок и взять от туда необходимую информаци. В данном примере цены на овощи и фрукты.
Цель номер 3 записать в базу.
Все это скрипт должен сделать самостоятельно. Всего три наименования и три цены. Все подряд не надо, только то что идет сразу после слова Огурцы, после слова Томаты и после слова Бананы.
Записывается в базу следующим образом
Код: Выделить всё
наименование раздела | наименование магазина | бананы | томаты |огурцы
---------------------------------------------------------------------------------------------
прод. магазины |магазин 1 | 35 руб | 50руб |70руб
прод. магазины |магазин 2 | 35 руб | 50руб |70руб
вот как то так)
записать в базу без проблем, главное как получить все эти данные в переменные

Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 10:24:21
zg
spy писал(а):Цель номер 3 записать в базу.
куясе... ты мегапаука хочешь сделать?
в смысле все действия должен выполнять опеределённый скрипт?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 10:43:55
spy
zg писал(а):spy писал(а):Цель номер 3 записать в базу.
куясе... ты мегапаука хочешь сделать?
в смысле все действия должен выполнять опеределённый скрипт?
да все долже скрипт делать.
да какой паук

так мелочь все будет в пределе одного сайта работать.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 10:51:56
zg
spy писал(а):так мелочь все будет в пределе одного сайта работать.
паук есть паук, у него своя логика работы
spy писал(а):да все долже скрипт делать.
в принципе ничё сложного нет. Правда есть один момент, срадствами базы данных то никак? Это было бы намного проще.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 11:09:14
ADRE
так понял парсить листы с прайсом чтоли?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 11:10:10
spy
zg писал(а):spy писал(а):так мелочь все будет в пределе одного сайта работать.
паук есть паук, у него своя логика работы
spy писал(а):да все долже скрипт делать.
в принципе ничё сложного нет. Правда есть один момент, срадствами базы данных то никак? Это было бы намного проще.
к сожалению никак... объяснить сложнее почему , чем сделать то что мне надо
У тя есть какие то идеи?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 11:16:02
zg
spy писал(а):У тя есть какие то идеи?
делаешь закачку через wget и прасишь получившиеся файлы

работы минут на двадцать.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-07 11:21:57
spy

ага попробую... отпишусь потом
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:08:04
spy
zg писал(а):spy писал(а):У тя есть какие то идеи?
делаешь закачку через wget и прасишь получившиеся файлы

работы минут на двадцать.
1 -так сдаюсь)) в PHP разве есть WGET

?
2 -Как средствами PHP залить эту страницу?
3 -и ваще можно как то не закачивая прошарить эту страницу?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:14:01
zg
spy писал(а):1 -так сдаюсь)) в PHP разве есть WGET?
нет
spy писал(а):2 -Как средствами PHP залить эту страницу?
file_get_contents()
spy писал(а):3 -и ваще можно как то не закачивая прошарить эту страницу?
гм.. file()

ты разбил задачу на этапы?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:17:04
spy
первый этам закачать страницу
http://spysoft.us/test/?ses=razdel&id=1 для таго чтобы получить URL магазинов
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:22:06
zg
spy писал(а):первый этам закачать страницу
гуд -) смотри
http://ru.php.net/manual/ru/function.fi ... ntents.php
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:30:35
spy
ага спасибо

это я почитал
получилось засунуть страничку в переменную
http://spysoft.us/test/test.php
Теперь начинается второй этап - получение списка названий и ссылок магазинов.
Тут регулярки или я ошибаюсь?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 6:51:17
spy
Блин рано еще ко второму этапу
А вот если у меня будет авторизация на сайте, то этот скрипт уже не сможет взять инфу, нужно сначало авторизоваться как то
Авторизаваться можно будет по ссылке
http://spysoft.us/test/login.php?login=login&pass=pass
Но как это правильно сделать, что бы потом сайт понял что отсюда
http://spysoft.us/test/?ses=razdel&id=1 инфу берет уже авторизованный пользователь.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 10:15:21
zg
spy писал(а):А вот если у меня будет авторизация на сайте
когда будет, тогда будет, нефиг раньше времени суетиться

у тебя есть конкретная цель, авторизация подождёт
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 10:42:04
spy
Да я уже проверял. те ссылке который без авторизации не показываются он и не выдергивает

Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 13:53:50
zg
spy писал(а):не показываются он и не выдергивает
чтобы сделать что-то сложное нужно начать с простого. ты поставил вполне конкретную задачу, сделал муляж, осталось сделать скрипт, который будет с муляжом работать как надо. А когда уже будешь работать с нормальным сайтом, то придётся допиливать в любом случае.
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 16:09:05
spy
Мудро
Ну хорошо вот я получил в переменную страницу с таблицей магазинов
http://spysoft.us/test/test.php
Первый этап завершен)
Второй Этап:
Каким образом теперь мне вычислить все названия магазинов и их ссылки? Регулярные выражение?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-08 21:09:56
zg
spy писал(а):Каким образом теперь мне вычислить все названия магазинов и их ссылки? Регулярные выражение?
тут действует такая же логика, по которой ты определяешь для себя название магазина.
Есть код html в котором есть нужные тебе данные. Твоя задача определить границы цели.
Это нефильтрованный код
Код: Выделить всё
<html>
<head>
<title></title>
</head>
<body>
Продуктовые магазины
<table border=1>
<tr><td>Наименование магазина</td><td>Дополнительная информация</td></tr>
<tr><td><a href="?ses=magaz&id=1">Магазин 1</a></td><td>Овощной магазин</td></tr>
<tr><td><a href="?ses=magaz&id=2">Магазин 2</a></td><td>Овощной магазин</td></tr>
</table>
</body>
</html>
Твоя задача во-первых — выделить целевые данные, то есть
Код: Выделить всё
Продуктовые магазины
<table border=1>
<tr><td>Наименование магазина</td><td>Дополнительная информация</td></tr>
<tr><td><a href="?ses=magaz&id=1">Магазин 1</a></td><td>Овощной магазин</td></tr>
<tr><td><a href="?ses=magaz&id=2">Магазин 2</a></td><td>Овощной магазин</td></tr>
</table>
Во-вторых, из полученного полуфабриката выделить, ссылки на магазины и их название описание.
Код: Выделить всё
Продуктовые магазины
Магазин 1 | ?ses=magaz&id=1 | Овощной магазин
Магазин 2 | ?ses=magaz&id=2 | Овощной магазин
как только подобный результат будет получаться автоматически, можно переходить к следующему этапу.
ЗЫ знак | вовсе необязателен -), это я для наглядности привёл
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-09 19:14:51
spy
Дык с помощью чего мне вычлинять эту инфу

Что лучше использовать?
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-09 22:32:15
zg
spy писал(а):Что лучше использовать?
чем сможешь, тем и делай

ограничений нет, главное получить нужный результат
Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-11 8:41:32
spy
zg писал(а):spy писал(а):Что лучше использовать?
чем сможешь, тем и делай

ограничений нет, главное получить нужный результат
Получилось вот что
http://spysoft.us/test/test.php
Код: Выделить всё
Продуктовые магазины
?ses=magaz&id=1 - Магазин 1 - Овощной магазин
?ses=magaz&id=2 - Магазин 2 - Овощной магазин
Теперь я думаю можно записать как то это все в базу, и на этом завершить первую часть работы скрипта.
Осталось теперь придумать как эти строки записать в переменную

Re: Очень сложная задача! (для меня)
Добавлено: 2009-05-11 8:56:13
zg
spy писал(а):Получилось вот что
код выложи
spy писал(а):Теперь я думаю можно записать как то это все в базу, и на этом завершить первую часть работы скрипта.
если ты получил именно список, то проблем с сохранением в базу не будет.
Если в коде особых пролем не будет, то можно приступать к следующему этапу — обработке списка магазинов.