PDA

Просмотр полной версии : [Помогите!] Парсинг страницы с играми в STEAM [C++]


noob c++
08.08.2011, 17:09
Привет всем
Как можно спарсить список игр со страницы с играми в steamcommunity.com ?
Страница со списком игр (пример): [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Интересует не сам код, а вообще принцип этого парсинга.
Тут наверно работа с сокетами и GET\POST запросы. Если где-то есть статья или еще что-то, которая может помочь в решении данной задачи - прошу поделиться. Буду очень признателен за помощь.

MCseller
08.08.2011, 17:29
Посылка GET запроса, и дальше регулярные выражения.
Ничего особенного.

noob c++
08.08.2011, 20:41
Посылка GET запроса, и дальше регулярные выражения.
Ничего особенного.

Это нужно снифером посмотреть что передает и принимает сервер и сформировать запрос в ответ на который сервер пришлет список игр ?

MCseller
08.08.2011, 20:51
ну создаешь GET запрос к нужной странице
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
получаешь её содержимое html и проходишься по ходу с помощью регулярного выражения ища нужную маску

MCseller
08.08.2011, 21:23
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
если кодишь на С++ с использованием .NET
там про пространства имен System.Text.RegularExpressions и System.Web почитай
Вполне понятным языком всё написано, и с примерами

Rhino1234
10.08.2011, 20:29
Покажу шаги простого и банального решения (для новичка)

1)Как говорил MCseller, делаешь запрос на [Ссылки могут видеть только зарегистрированные и активированные пользователи] пример (String s = Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]>Get("[Ссылки могут видеть только зарегистрированные и активированные пользователи]"))

2)В переменную s попадает html код странички
3)С помощью Pos ; Delete ; SubString ; вытаскиваешь все что нужно

ну если ты уже вполне разбираешься в языке то юзай html parser c++

ниже код на Pos ; Delete ; SubString ; в C++

// s - твой ответ
int p = s.Pos("rgGames['240']");
//находим позицию слова в строке
s = s.Delete(1,p+15);

p = s.Pos("= '");
int len = s.Pos("';") - p;

String igra = s.SubString(p,len);

// в igra теперь Counter-Strike: Source кажется... :D


честно скажу писал так на память так что могут быть какие то лаги )

MCseller
10.08.2011, 21:44
1)Как говорил MCseller, делаешь запрос на [Ссылки могут видеть только зарегистрированные и активированные пользователи] пример (String s = Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]>Get("[Ссылки могут видеть только зарегистрированные и активированные пользователи]"))

2)В переменную s попадает html код странички
3)С помощью Pos ; Delete ; SubString ; вытаскиваешь все что нужно
Хочу отметить, что C++ Builder тоже является одной из реализаций C++ который насколько помню тоже использует свои библиотеки, а ТС скорее всего имеет компилятор GCC

noob c++
11.08.2011, 19:44
Хочу отметить, что C++ Builder тоже является одной из реализаций C++ который насколько помню тоже использует свои библиотеки, а ТС скорее всего имеет компилятор GCC

Visual Studio C++ 2008