BG Development


  Reply to this topicStart new topicStart Poll

> Обхождане на продуктов каталог и запис
Zeardn
Публикувано на: 06-02-2019, 16:43
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 251
Регистриран на: 05.12.14



Колеги, днес ми дадоха една интересна работа. Избирам си сайт за пример - https://www.e-gardena.com/bg/upravlenie-na-...markuchi?page=3

Като го отворите и виждате продукти на страницата, които можете да кликнете и отворите.

Трябва да измисля код, който отваря remotely например тази страница, обхожда всички продукти и в XML файл запазва информацията за всеки - заглавие, описание, цена и т.н. Знам, че информацията ще се взима на принципа, както се взима и за XML Feed - ще се търсят ID-тата или класовете на HTML елементите, съдържащи заглавието, съдържанието и другите характеристики, но не знам как да осъществя целия процес - обхождане на страницата, отваряне на линковете към продуктите и взимането на информация от тях.

Ако подхода е друг - моля за съвет как да го осъществя.


--------------------
StackOverflow Member
PMEmail Poster
Top
sailer
Публикувано на: 06-02-2019, 16:49
Quote Post



Име: Александър Георгиев
Група: Потребител
Ранг: Почетен член

Мнения: 2154
Регистриран на: 15.01.07



DOM Ползвай това вместо регулярни изрази или търсене директно в стринговете.


--------------------
But when I taste rakija
In my head anarhija
PMEmail Poster
Top
Zeardn
Публикувано на: 06-02-2019, 16:52
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 251
Регистриран на: 05.12.14



Ами от къде да изпълнявам PHP кода като цяло? Правя си или ползвам някой уеб хостинг за сървър и изпълнявам един PHP код от файл. Как с този код да обходя страницата на продуктовия каталог и да отворя от там по-вътрешен линк (самия продукт), после да се върна назад и пак да се повтори процедурата?


--------------------
StackOverflow Member
PMEmail Poster
Top
Zeardn
Публикувано на: 06-02-2019, 17:24
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 251
Регистриран на: 05.12.14



Може да взема DOM структурата на страницата с HTTP_Request2 и да я обходя с PHP DOM. При срещане на всеки линк към продукт, да се преминава вътрешно отново по този начин - чрез следваща HTTP_Request2 - свършва се работата вътре и се излиза отново едно ниво нагоре, намира се следващия и пак към линка му на <a> елемента се праща HTTP_Request2 и се повтаря процедурата. Как звучи?


--------------------
StackOverflow Member
PMEmail Poster
Top
Антон Яначков
Публикувано на: 06-02-2019, 18:34
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1039
Регистриран на: 27.07.16



За такава проста задачка най-приляга VBA for Excel. Използвайки Excel и вградената в него ocx за IE, отваряш съответната страница познавайки структурата на страницата, сглабяш простата логика, чрез няколко вградени един в друг цикли. IE се манипулира невероятно елементарно с VBA. Грабната информация си я записваш по подходящ начин в таблица или таблици на самия файл на Excel-a и правиш с нея каквото искаш. За посоченият от теб сайт нещата изглеждат много елементарно, но има доста по засукани сайтове. Такава програма ще работи естествено само за сайта за който е сглобена.
Дай линк към сайта, който искаш да манипулираш, за да се придобие ясна предства, дали са 20 реда сорс или 100.
PMEmail PosterUsers Website
Top
purjola
Публикувано на: 06-02-2019, 20:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2246
Регистриран на: 18.10.11



Тая "задача" е да напишеш скрейпър. Пожелавам ти успех, ако има адекватна защита срещу сваляне на продуктите и цените.
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 06-02-2019, 20:56
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2090
Регистриран на: 21.02.18





--------------------
https://www.rust-lang.org/
---
Недобросъвестните оратори се опитват да изкарат лошото добро.
---
PMEmail PosterUsers Website
Top
ivanovkbg
Публикувано на: 07-02-2019, 08:34
Quote Post



Име: Красимир
Група: Потребител
Ранг: Новопостъпил

Мнения: 18
Регистриран на: 17.02.14



Аз в момента правя нещо подобно, само, че не си бера продукти, а други неща icon_lol.gif.

Иначе, вместо да взимам линк, да го отварям и в последствие да се връщам и да взимам друг, първо в един масив си записвам всички линкове, които трябва да обходя. После си foreach-вам този масив, отварям си всеки от линкове и си взимам това, което ми трябва.

Иначе ползвам ето този клас http://simplehtmldom.sourceforge.net/, разгледай го, може да ти е от полза icon_smile.gif.

Това мнение е било редактирано от ivanovkbg на 07-02-2019, 08:35
PMEmail Poster
Top
0xdeadbeef
Публикувано на: 07-02-2019, 20:55
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 407
Регистриран на: 07.03.14



jsoup е само парсер. Той ще ти трябва след като вече си кроулнал хтмла.
А, и ще ти трябва нещо там селениум ли, друго ли, че може и динамичен контент да има.
PMEmail Poster
Top
TrustHavic
Публикувано на: 08-02-2019, 19:15
Quote Post



Име: Станимир
Група: Потребител
Ранг: Редовен член

Мнения: 394
Регистриран на: 30.04.14



ползвай simple php dom parser или както му беше името от колегата в по-горният пост,
ако ще го правиш на пхп те съветвам да си направиш всичко в отделни функции -> next_page(), scrap_site($url) и т.н. като за всекяка страница която ще отваряш ги викаш поотделно тези функции, след като намериш Url-to към продукта му даваш scrap_site() и т.н. и създаваш xml структура по темплейта и след това с preg_replace заместваш по него
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0