Очень сложная задача! (для меня)

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-07 9:55:37

Ага... есть такая схемка
Изображение
Есть таблица в мускуле

Таблица 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 рублей

и.д. для всех магазинов


Буду благодарен любой инфе... потому что даже незнаю с чего начать :unknown:
unix# ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-07 10:03:25

гм.. и правда сложно... :shock:

в смысле настолько всё зашифровано... думаю, надо разить работу на этапы.

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-07 10:21:19

zg писал(а):гм.. и правда сложно... :shock:

в смысле настолько всё зашифровано... думаю, надо разить работу на этапы.
ага...
Вот тут я смоделировал похожий сайтик http://spysoft.us/test/
все должно запускаться по кнопке "обновить".
Что должно происходить:

Заходим по ссылке "Продуктовые магазины", попадаем на страницу с таблицей.
Цель номер 1 определить ссылки магазинов в столбце "Наименование магазина".
Цель номер 2 пройти по каждой из этих ссылок и взять от туда необходимую информаци. В данном примере цены на овощи и фрукты.
Цель номер 3 записать в базу.
Все это скрипт должен сделать самостоятельно. Всего три наименования и три цены. Все подряд не надо, только то что идет сразу после слова Огурцы, после слова Томаты и после слова Бананы.

Записывается в базу следующим образом

Код: Выделить всё

наименование раздела | наименование магазина | бананы | томаты |огурцы 
---------------------------------------------------------------------------------------------
прод. магазины   |магазин 1                       |  35 руб  |  50руб   |70руб   
прод. магазины   |магазин 2                       |  35 руб  |  50руб   |70руб  
 
вот как то так)
записать в базу без проблем, главное как получить все эти данные в переменные :unknown:
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-07 10:24:21

spy писал(а):Цель номер 3 записать в базу.
куясе... ты мегапаука хочешь сделать?

в смысле все действия должен выполнять опеределённый скрипт?

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-07 10:43:55

zg писал(а):
spy писал(а):Цель номер 3 записать в базу.
куясе... ты мегапаука хочешь сделать?

в смысле все действия должен выполнять опеределённый скрипт?
да все долже скрипт делать.
да какой паук :smile: так мелочь все будет в пределе одного сайта работать.
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-07 10:51:56

spy писал(а):так мелочь все будет в пределе одного сайта работать.
паук есть паук, у него своя логика работы
spy писал(а):да все долже скрипт делать.
в принципе ничё сложного нет. Правда есть один момент, срадствами базы данных то никак? Это было бы намного проще.

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение ADRE » 2009-05-07 11:09:14

так понял парсить листы с прайсом чтоли?
//del

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-07 11:10:10

zg писал(а):
spy писал(а):так мелочь все будет в пределе одного сайта работать.
паук есть паук, у него своя логика работы
spy писал(а):да все долже скрипт делать.
в принципе ничё сложного нет. Правда есть один момент, срадствами базы данных то никак? Это было бы намного проще.
к сожалению никак... объяснить сложнее почему , чем сделать то что мне надо :-D

У тя есть какие то идеи?
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-07 11:16:02

spy писал(а):У тя есть какие то идеи?
делаешь закачку через wget и прасишь получившиеся файлы :smile: работы минут на двадцать.

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-07 11:21:57

:pardon: ага попробую... отпишусь потом
unix# ?

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 6:08:04

zg писал(а):
spy писал(а):У тя есть какие то идеи?
делаешь закачку через wget и прасишь получившиеся файлы :smile: работы минут на двадцать.
1 -так сдаюсь)) в PHP разве есть WGET :unknown: ?
2 -Как средствами PHP залить эту страницу?
3 -и ваще можно как то не закачивая прошарить эту страницу?
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-08 6:14:01

spy писал(а):1 -так сдаюсь)) в PHP разве есть WGET?
нет
spy писал(а):2 -Как средствами PHP залить эту страницу?
file_get_contents()
spy писал(а):3 -и ваще можно как то не закачивая прошарить эту страницу?
гм.. file()

:smile: ты разбил задачу на этапы?

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 6:17:04

первый этам закачать страницу http://spysoft.us/test/?ses=razdel&id=1 для таго чтобы получить URL магазинов
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-08 6:22:06

spy писал(а):первый этам закачать страницу
гуд -) смотри http://ru.php.net/manual/ru/function.fi ... ntents.php

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 6:30:35

zg писал(а):
spy писал(а):первый этам закачать страницу
гуд -) смотри http://ru.php.net/manual/ru/function.fi ... ntents.php
ага спасибо :smile: это я почитал
получилось засунуть страничку в переменную http://spysoft.us/test/test.php

Теперь начинается второй этап - получение списка названий и ссылок магазинов. :unknown:
Тут регулярки или я ошибаюсь?
unix# ?

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 6:51:17

Блин рано еще ко второму этапу :(

А вот если у меня будет авторизация на сайте, то этот скрипт уже не сможет взять инфу, нужно сначало авторизоваться как то :unknown:

Авторизаваться можно будет по ссылке
http://spysoft.us/test/login.php?login=login&pass=pass
Но как это правильно сделать, что бы потом сайт понял что отсюда http://spysoft.us/test/?ses=razdel&id=1 инфу берет уже авторизованный пользователь.
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-08 10:15:21

spy писал(а):А вот если у меня будет авторизация на сайте
когда будет, тогда будет, нефиг раньше времени суетиться :smile: у тебя есть конкретная цель, авторизация подождёт

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 10:42:04

Да я уже проверял. те ссылке который без авторизации не показываются он и не выдергивает :(
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-08 13:53:50

spy писал(а):не показываются он и не выдергивает
чтобы сделать что-то сложное нужно начать с простого. ты поставил вполне конкретную задачу, сделал муляж, осталось сделать скрипт, который будет с муляжом работать как надо. А когда уже будешь работать с нормальным сайтом, то придётся допиливать в любом случае.

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-08 16:09:05

Мудро :smile:

Ну хорошо вот я получил в переменную страницу с таблицей магазинов http://spysoft.us/test/test.php
Первый этап завершен)

Второй Этап:
Каким образом теперь мне вычислить все названия магазинов и их ссылки? Регулярные выражение?
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-08 21:09:56

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 | Овощной магазин
как только подобный результат будет получаться автоматически, можно переходить к следующему этапу.

ЗЫ знак | вовсе необязателен -), это я для наглядности привёл

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-09 19:14:51

Дык с помощью чего мне вычлинять эту инфу :unknown: Что лучше использовать?
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-09 22:32:15

spy писал(а):Что лучше использовать?
чем сможешь, тем и делай :smile: ограничений нет, главное получить нужный результат

Аватара пользователя
spy
сержант
Сообщения: 276
Зарегистрирован: 2008-05-21 10:27:31
Откуда: Красноярск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение spy » 2009-05-11 8:41:32

zg писал(а):
spy писал(а):Что лучше использовать?
чем сможешь, тем и делай :smile: ограничений нет, главное получить нужный результат
Получилось вот что http://spysoft.us/test/test.php

Код: Выделить всё

Продуктовые магазины 
?ses=magaz&id=1 - Магазин 1 - Овощной магазин
?ses=magaz&id=2 - Магазин 2 - Овощной магазин
Теперь я думаю можно записать как то это все в базу, и на этом завершить первую часть работы скрипта.
Осталось теперь придумать как эти строки записать в переменную :unknown:
unix# ?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Очень сложная задача! (для меня)

Непрочитанное сообщение zg » 2009-05-11 8:56:13

spy писал(а):Получилось вот что
код выложи
spy писал(а):Теперь я думаю можно записать как то это все в базу, и на этом завершить первую часть работы скрипта.
если ты получил именно список, то проблем с сохранением в базу не будет. :smile:

Если в коде особых пролем не будет, то можно приступать к следующему этапу — обработке списка магазинов.