Esempio n. 1
0
            public void GetPoster(Action <string> handler)
            {
                var uri = Link.ToUri();

                var c = new BasicWebCrawler(uri.Host, 80);

                c.DataReceived +=
                    document =>
                {
                    var prefix = "http://www.movieposterdb.com/posters/";

                    var trigger = "<img src=\"" + prefix;

                    var trigger_i = document.IndexOf(trigger);

                    if (trigger_i < 0)
                    {
                        return;
                    }

                    var end_i = document.IndexOf("\"", trigger_i + trigger.Length);

                    var data = prefix + document.Substring(trigger_i + trigger.Length, end_i - (trigger_i + trigger.Length));

                    handler(data);
                };

                c.Crawl(uri.PathAndQuery);
            }
Esempio n. 2
0
        public static void Spawn(string url, Action <string> handler)
        {
            var Hosts = new[]
            {
                "xn--hgi.ws",
                "xn--ogi.ws",
                "xn--vgi.ws",
                "xn--3fi.ws",
                "xn--egi.ws",
                "xn--9gi.ws",
                "xn--5gi.ws",
                "xn--1ci.ws",
                "xn--odi.ws",
                "xn--rei.ws",
                "xn--cwg.ws",
                "ta.gd",
            };


            var Host = Hosts[url.XorBytes() % Hosts.Length];

            var c = new BasicWebCrawler("tinyarro.ws", 80);

            c.Buffer = new byte[100];

            c.BinaryDataReceived +=
                data =>
            {
                var Target = "http://";

                int i = Target.Length;

                for (; i < data.Length; i++)
                {
                    if (data[i] == '/')
                    {
                        i++;
                        break;
                    }
                }

                Target += Host + "/";

                for (; i < data.Length; i++)
                {
                    Target += "%" + data[i].ToHexString();
                }

                handler(Target);
            };



            c.Crawl("/api-create.php?host=" + Host + "&url=" + url);
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var hosts = new[] { "zmovies.tk" /*, "zmoviez.tk" */ };

            while (true)
            {
                foreach (var h in hosts)
                {
                    var c = new BasicWebCrawler(h, 80);

                    c.DataReceived +=
                        document =>
                    {
                        var trigger = "<frame src=\"";
                        var i       = document.IndexOf(trigger);
                        var j       = document.IndexOf("\"", i + trigger.Length);

                        var data = document.Substring(i + trigger.Length, j - i - trigger.Length);

                        var gmoduleprefix = "http://www.gmodules.com/ig/ifr?url=";

                        if (data.StartsWith(gmoduleprefix))
                        {
                            var module = data.Substring(gmoduleprefix.Length);

                            if (module.StartsWith("http://zproxy.planet.ee"))
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            else
                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }

                            Console.WriteLine(DateTime.Now.ToString() + " " + h + " : " + module);
                        }
                        else
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine(DateTime.Now.ToString() + " " + h + " : " + data);
                        }
                    };

                    c.Crawl("/");
                }

                Thread.Sleep(15000);
            }
        }
Esempio n. 4
0
        public static string ToWebString(this string e)
        {
            var value = "";

            var u = new Uri(e);
            var c = new BasicWebCrawler(u.Host, 80);

            c.DataReceived +=
                document =>
            {
                value = document;
            };

            c.Crawl(u.PathAndQuery);

            return(value);
        }
Esempio n. 5
0
        // http://msdn.microsoft.com/en-us/library/aa373347(VS.85).aspx



        static void Main(string[] args)
        {
            var u = new Uri("http://zproxy.planet.ee/zmovies/server/tasks/Scheduler/Counter");

            var x = 0;

            var skip = 5;

            while (true)
            {
                var c = new BasicWebCrawler(u.Host, 80);

                c.DataReceived +=
                    document =>
                {
                    var n = int.Parse(document);

                    if (x > 0)
                    {
                        if (x < n)
                        {
                            if (x < (n - skip))
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            else
                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                        }
                        else
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                        }

                        Console.WriteLine(n);
                    }

                    x = n;
                };

                c.Crawl(u.PathAndQuery);

                Thread.Sleep(5500 * skip);
            }
        }
Esempio n. 6
0
        public static void Search(string url, Action <string> handler)
        {
            var c = new BasicWebCrawler("kej.tw", 80);

            c.DataReceived +=
                document =>
            {
                var trigger_tag = "<textarea id=\"outputfield\">";
                var trigger_i   = document.IndexOf(trigger_tag);

                var trigger_end_tag = "</textarea>";
                var trigger_end_i   = document.IndexOf(trigger_end_tag, trigger_i + trigger_tag.Length);

                var data = document.Substring(trigger_i + trigger_tag.Length, trigger_end_i - trigger_i - trigger_tag.Length);

                handler(data);
            };

            c.Crawl("/flvretriever/?videoUrl=" + url);
        }
Esempio n. 7
0
        public static void Search(string title, Action <AliasEntry> handler)
        {
            var t = new Uri("http://www.movieposterdb.com/browse/search?search_type=movies&title=");
            var c = new BasicWebCrawler(t.Host, 80);

            var DefaultLink = new { Link = "", Title = "", Text = "" };
            var DefaultSpan = new { Text = "", Title = "" };

            var ParseSpan = DefaultSpan.ToAnonymousConstructor(
                (string element) =>
            {
                var Text  = "";
                var Title = "";

                element.
                ParseAttribute("title", value => Title = value).
                ParseContent(value => Text             = value).
                Parse("span");

                return(new { Text, Title });
            }
                );

            var ParseLink = DefaultLink.ToAnonymousConstructor(
                (string element) =>
            {
                var Link  = "";
                var Title = "";
                var Text  = "";

                element.
                ParseAttribute("href", value => Link   = value).
                ParseAttribute("title", value => Title = value).
                ParseContent(value => Text             = value).
                Parse("a");

                return(new { Link, Title, Text });
            }
                );

            c.DataReceived +=
                document =>
            {
                var trigger = "Movies</h3>";

                var trigger_i = document.IndexOf(trigger);

                var data = BasicElementParser.GetContent(document.Substring(trigger_i), "table");

                BasicElementParser.Parse(data, "tr",
                                         (element, index) =>
                {
                    /*
                     * <td valign="middle" style="font-size: 0pt; border-bottom: 1px solid #D2D2D2; height: 54px; width: 44px;">
                     *  <img src="http://www.movieposterdb.com/posters/08_09/2008/1179855/m_1179855_4fb9999f.jpg" style="margin-right: 8px; padding: 2px; border: 1px solid #D2D2D2; float: left;" />
                     * </td>
                     * <td valign="middle" style="border-bottom: 1px solid #D2D2D2; width: 60%;">
                     *  <b><a class="bbg" href="http://www.movieposterdb.com/movie/1179855/Go-Fast.html">Go Fast</a><br /><span style="color: #8C8C8C;">2008</span></b>
                     * </td>
                     * <td style="border-bottom: 1px solid #D2D2D2; font-size: 8pt; color: #808080;">
                     *
                     * </td>
                     */

                    BasicElementParser.Parse(element, "td",
                                             (tdelement, tdindex) =>
                    {
                        if (tdindex == 1)
                        {
                            // <b><a class="bbg" href="http://www.movieposterdb.com/movie/1179855/Go-Fast.html">Go Fast</a><br /><span style="color: #8C8C8C;">2008</span></b>
                            var _title = ParseLink(tdelement);
                            var _year  = ParseSpan(tdelement);

                            handler(
                                new AliasEntry
                            {
                                Link  = _title.Link,
                                Title = _title.Text,
                                Year  = _year.Text
                            }
                                );
                        }
                    }
                                             );
                }
                                         );
            };

            c.Crawl(t.PathAndQuery + title.URLEncode());
        }
        public static void Search(string stitle, Action <AliasEntry> handler)
        {
            var c = new BasicWebCrawler("www.omdb.si", 80);

            var DefaultLink = new { Link = "", Title = "", Text = "" };

            var ParseLink = DefaultLink.ToAnonymousConstructor(
                (string element) =>
            {
                var Link  = "";
                var Title = "";
                var Text  = "";

                element.
                ParseAttribute("href", value => Link   = value).
                ParseAttribute("title", value => Title = value).
                ParseContent(value => Text             = value).
                Parse();

                return(new { Link, Title, Text });
            }
                );

            c.DataReceived +=
                document =>
            {
                var trigger_tag     = "<table width=\"100%\" class=\"fW\">";
                var trigger_end_tag = "</table>";

                Func <int, int> scan =
                    offset =>
                {
                    var trigger_i = document.IndexOf(trigger_tag, offset);

                    if (trigger_i < 0)
                    {
                        return(offset);
                    }

                    var tirgger_end_i = document.IndexOf(trigger_end_tag, trigger_i);

                    if (tirgger_end_i < 0)
                    {
                        return(offset);
                    }

                    var data = document.Substring(trigger_i + trigger_tag.Length, tirgger_end_i - trigger_i - trigger_tag.Length);

                    /*
                     * <tr>
                     * <td class="bTl"><img alt="" src="/images/default/Ogrodje0.gif" width="10" height="10" /></td>
                     * <td class="bT"></td><td class="bTr"></td></tr>
                     * <tr>
                     * <td class="bL"></td>
                     * <td class="bM">
                     * <div align="left">
                     *  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                     *          <tr>
                     * <td width="5" rowspan="2"></td>
                     * <td width="444" align="left">
                     * <div align="left"><a href="/index.php/ofilm/?i=401737">Lost <b>(2004)</b></a></div>
                     * </td>
                     * <td align="right">
                     * <span class="forumozadje3"><b>8.9</b>
                     * <img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellow.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/d9.gif' class='slikevvrsti' /><img src='/images/default/zvezdice/yellowEmpty.gif' class='slikevvrsti' /></span>
                     * </td></tr>
                     *          <tr>
                     * <td align="left">
                     * <span class="oddelki_forum_mala">Genre: <b>Drama, Adventure, Mystery, Thriller</b> Duration: <b>45 min</b></span>
                     * </td>
                     * <td align="right"><span class="oddelki_forum_mala">(174 votes)</span></td></tr>
                     */

                    var title_tag     = "<div align=\"left\">";
                    var title_end_tag = "</div>";

                    var title_i = data.IndexOf(title_tag);

                    if (title_i < 0)
                    {
                        return(offset);
                    }

                    title_i = data.IndexOf(title_tag, title_i + title_tag.Length);

                    var title_end_i = data.IndexOf(title_end_tag, title_i);

                    //  Lost <b>(2004)</b>
                    var title = ParseLink(data.Substring(title_i + title_tag.Length, title_end_i - title_i - title_tag.Length));

                    var genre_tag     = "<span class=\"oddelki_forum_mala\">";
                    var genre_i       = data.IndexOf(genre_tag, title_end_i);
                    var genre_end_tag = "</span>";
                    var genre_end_i   = data.IndexOf(genre_end_tag, genre_i);
                    // Genre: <b>Drama, Adventure, Mystery, Thriller</b> Duration: <b>45 min</b>
                    var genre = data.Substring(genre_i + genre_tag.Length, genre_end_i - genre_i - genre_tag.Length);

                    var e = new AliasEntry
                    {
                        Genres   = genre.Substring("Genre: <b>", "</b>").Split(new[] { ',' }).Trim(),
                        Duration = genre.Substring("Duration: <b>", "</b>"),
                        Link     = "http://www.omdb.si" + title.Link,
                        Title    = title.Text.Substring(0, title.Text.IndexOf("<")),
                        Year     = title.Text.Substring("<b>", "</b>")
                    };

                    handler(e);

                    return(tirgger_end_i + trigger_end_tag.Length);
                };

                var start_tag    = "<td align=\"right\" class=\"bM\">";
                var start_offset = document.IndexOf(start_tag);
                start_offset = document.IndexOf(start_tag, start_offset);

                scan.ToChainedFunc((x, y) => y > x)(start_offset);
            };

            // we will only look at the first result page
            c.Crawl("/index.php/odefault/search?sK=" + stitle.URLEncode());
        }