Mayo 25, 2018, 08:21:52 pm

Autor Tema: Goear Parser[C# version]  (Leído 1676 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MoisesE

  • Me das tu IP?
  • *
  • Mensajes: 156
  • El querer es poder
    • Ver Perfil
Goear Parser[C# version]
« en: Junio 25, 2011, 02:51:59 am »
Clase Parser
Código: (csharp) You are not allowed to view links. Register or Login
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Web;
using System.Text.RegularExpressions;
using System.Xml;
namespace GoearParser
{
    class Parser
    {
        private static String reqUri = "http://goear.com/reqsearch.php?q=";
        private static String reqXmlUri = "http://www.goear.com/tracker758.php?f=";
        private static List<String> arrHttp = new List<String>();
        private static List<String> identificators = new List<String>();
        private static List<String> artistList = new List<String>();
        private static List<String> titleList = new List<String>();
        private static List<String> pathList = new List<String>();

        public static string encodeURL(string path_or_url)
        {
            String resultPath = String.Empty;
            resultPath = HttpUtility.UrlEncode(Encoding.ASCII.GetBytes(path_or_url));
            return (resultPath);
        }

        public static void GetFormatedUrls(String key,int pag)
        {
            String url = reqUri + key + "&p=" + Convert.ToString(pag);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            if (req != null)
            {
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream stream = (Stream)resp.GetResponseStream();
                StreamReader reader = new StreamReader(stream);
                string content = reader.ReadToEnd();
                String[] arr = Regex.Split(content, "href=");
                for (int count = 1; count < arr.Length  - 1; count++)
                {
                    int rangeHttp = arr[count].IndexOf("http");
                    int characterRange = arr[count].IndexOf("'>");
                    String urlExtracted = arr[count].Substring(rangeHttp, characterRange);
                    urlExtracted = Regex.Replace(urlExtracted, "'", "");
                    arrHttp.Add(urlExtracted);
                }
                resp.Close();
               
            }
        }

        public static void GetUrlIdentificators()
        {
            List<String> links = getLinks();
            for (int count = 0; count < links.Count; count++)
            {
                String[] arr = Regex.Split(links[count], "/");
                for (int rest = 0; rest < arr.Length; rest++)
                {
                    if ((rest) == 4)
                    {
                        identificators.Add(arr[rest]);
                    }
                }
            }
        }

        public static void ParseXmlEntry(String id)
        {
            String urlPath = reqXmlUri + id;
            XmlDocument doc = new XmlDocument();
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlPath);
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            doc.Load(resp.GetResponseStream());
            XmlNodeList list = (XmlNodeList)doc.ChildNodes;
            int sizeList = list.Count;
            for (int c = 0; c < sizeList; c++)
            {
                String nodeName = (String)list[c].Name;
                if (nodeName.Equals("songs"))
                {
                    XmlNodeList listaDos = (XmlNodeList)list[c].ChildNodes;
                    int sizeListaDos = listaDos.Count;
                    for (int rest = 0; rest < sizeListaDos; rest++)
                    {
                        String songNodeName = listaDos[rest].Name;
                        if (songNodeName.Equals("song"))
                        {
                            XmlAttributeCollection coll = (XmlAttributeCollection)listaDos[rest].Attributes;
                            int sizeAttr = coll.Count;
                            for (int countAttr = 0; countAttr < sizeAttr; countAttr++)
                            {
                                String name = coll[countAttr].Name;
                                if (name.Equals("artist"))
                                {
                                    artistList.Add(coll[countAttr].Value);
                                }
                                if (name.Equals("path"))
                                {
                                    pathList.Add(coll[countAttr].Value);
                                }
                                if (name.Equals("title"))
                                {
                                    titleList.Add(coll[countAttr].Value);
                                }
                            }
                        }
                    }
                }
            }
        }

        public static List<String> getLinks()
        {
            return (arrHttp);
        }
        public static List<String> getIdentificators()
        {
            return (identificators);
        }
        public static List<String> returnTitleList()
        {
            return (titleList);
        }
        public static List<String> returnArtistList()
        {
            return (artistList);
        }
        public static List<String> returnPathList()
        {
            return (pathList);
        }
    }

   
}


Metodo de uso:

Código: (csharp) You are not allowed to view links. Register or Login
Parser.GetFormatedUrls(Parser.encodeURL("nickelback"), 1);
            Parser.GetUrlIdentificators();
            List<String> id = Parser.getIdentificators();
            for (int i = 0; i < id.Count; i++)
            {
                Parser.ParseXmlEntry(id[i].ToString());
            }


            List<String> paths = Parser.returnPathList();
            List<String> artistList = Parser.returnArtistList();

            for (int count = 0; count < (paths.Count); count++)
            {
                Console.WriteLine("Direccion de descarga:" + paths[count].ToString());
                Console.WriteLine("Artistas:" + artistList[count].ToString());
            }

            Console.ReadLine();

            //End.



xx
Goear Parser[PYTHON VERSION]

Iniciado por MoisesE

1 Respuestas
1228 Vistas
Último mensaje Julio 19, 2011, 03:48:37 am
por texo7
exclamation
Goear Parser

Iniciado por MoisesE

0 Respuestas
1624 Vistas
Último mensaje Junio 24, 2011, 04:43:21 am
por MoisesE
question
autoplay en goear.

Iniciado por Xskin77X

0 Respuestas
2825 Vistas
Último mensaje Junio 07, 2010, 10:23:03 pm
por Xskin77X
exclamation
[IPHONE]Goear Mobile ( CIDYA ) .

Iniciado por MoisesE

0 Respuestas
2303 Vistas
Último mensaje Julio 03, 2010, 05:35:34 am
por MoisesE
exclamation
Goear downloader[WII][Codigo fuente en C]

Iniciado por MoisesE

4 Respuestas
3043 Vistas
Último mensaje Enero 13, 2010, 08:53:04 am
por myguestp
exclamation
[Objective-C]Codigo fuente GOEAR MOBILE

Iniciado por MoisesE

7 Respuestas
2899 Vistas
Último mensaje Julio 04, 2010, 03:03:58 am
por MoisesE
question
Diferencia entre visual basic version 2010 y version 6.0

Iniciado por Paula_19

2 Respuestas
1656 Vistas
Último mensaje Agosto 13, 2012, 10:08:38 am
por Paula_19
resuelto
Que diferencia hay entre una version Beta y una versión final ?

Iniciado por naxete

3 Respuestas
2175 Vistas
Último mensaje Octubre 08, 2010, 12:47:39 pm
por Rcart
xx
version php

Iniciado por nica

5 Respuestas
2007 Vistas
Último mensaje Marzo 02, 2007, 04:43:13 pm
por nica
xx
Key... by ¿CD? - Versión 1.0

Iniciado por ¿RAS?L

4 Respuestas
1036 Vistas
Último mensaje Diciembre 12, 2016, 07:48:00 pm
por Alexxander296