BG Development


  Reply to this topicStart new topicStart Poll

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



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

Мнения: 265
Регистриран на: 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



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

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



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


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



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

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



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


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



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

Мнения: 265
Регистриран на: 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



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

Мнения: 1154
Регистриран на: 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



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

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



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



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

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





--------------------
https://www.rust-lang.org/
---
Хора, които са прекалено умни, за да се занимават с политика, са наказани да бъдат управлявани от глупаци.
---
Life is hard; it's harder when you're stupid.
---
Black metal is like coffee. You have to learn to drink it but when you get used to it, you just want it darker and darker
PMEmail PosterUsers Website
Top
ivanovkbg
Публикувано на: 07-02-2019, 08:34
Quote Post



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

Мнения: 21
Регистриран на: 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



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

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



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



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

Мнения: 397
Регистриран на: 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