شما میتونید برای راحت تر شدن کارتون از API های MSC استفاده کنید
برای کپچر و جداسازی لینک ها از HtmlAgilityPack استفاده کنید
لازم به ورود با کپچا و این چیزا ندارید
فقط کافیه با کوکی هایی که قبلا لاگین کردید این لینک رو فراخونی کنید و کوکی هارو آپدیت کنید تا از ایجاد خطا جلوگیری کنید(نیاز به آپدیت کوکی اصلی نیست)
میتونید از این کلاس استفاده کنید که چند وقت پیش نوشتم:
(کار این کلاس اینه که لاگین کنه و صفحه مورد نظر رو فراخونی کنه و لینک های دانلود رو جداسازی و تبدیل به لینک مستقیم کنه و همراه با اطلاعات لینک در Item قرار بده)
// Writed By Rextor in 5/10/2016
// For update just login to site and past all cookies
// Films and seryals by link page
using System.Collections.Generic;
using System.Text.RegularExpressions;
using HtmlAgilityPack;
using MSC;
using MSC.Net;
namespace Leecher.Scripts.Films
{
public class Item
{
public string Info { set; get; }
public string Link { set; get; }
}
class TinyMoviez
{
public static List<Item> GetLinks(string link_Page)
{
List<Item> items = new List<Item>();
string url = link_Page;
Config config = new Config();
Requests re = new Requests();
RequestManage login = new RequestManage();
//Login
config.Cookies = "Your Cookies Login";
config.LoginURL = "http://20tinymoviez.net/user_cp.php";
config.KeepAlive = true;
config.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0";
config.Method = "GET";
login = re.GetPageSource(null, config, null, config.LoginURL);
config.Headers = "Upgrade-Insecure-Requests:1";
config.LoginURL = login.Headers["Location"];
RequestManage login2 = re.GetPageSource(login, config, null, config.LoginURL);
//Get Link
config.Referer = "http://tinyz.us/tt0367478?wake-of-death";
config.LoginURL = url;
RequestManage manage = re.GetPageSource(login2, config, null, config.LoginURL);
HtmlDocument HD = new HtmlDocument();
HD.LoadHtml(manage.SourcePage);
//Get Page
int i1 = 0;
bool inFound = false;
string Info = "";
string Link = "";
while (true)
{
i1++;
try
{
if (!inFound)
{
Info = HD.DocumentNode.SelectSingleNode("//*[@id='links']/div[" + i1.ToString() + "]").InnerText;
inFound = true;
if (Info == null)
break;
}
else
{
try
{
string neh = "";
Link = HD.DocumentNode.SelectSingleNode("//*[@id='links']/div[" + i1.ToString() + "]").InnerHtml;
Match m = Regex.Match(Link, "<a[^>]* href='([^ ']*)'");
neh = m.Groups[1].ToString();
Link = neh;
}
catch { }
config.AllowAutoRedirect = false;
config.Method = "";
RequestManage mg = re.GetPageSource(manage, config, null, "http://tinyz.us/" + Link);
Link = mg.Headers["Location"];
Item item = new Item();
item.Info = Info;
item.Link = Link;
items.Add(item);
Info = "";
Info = "";
inFound = false;
}
}
catch { break; }
}
if (items.Count == 0)
{
int i2 = 0;
string Info2 = "";
string Link2 = "";
string body = HD.DocumentNode.SelectSingleNode("//*[@id='page']/div[2]").InnerHtml;
HD.LoadHtml(body);
while (true)
{
i2++;
try
{
var hrefList = HD.DocumentNode.SelectSingleNode("//a[" + i2.ToString() + "]");
Info2 = HD.DocumentNode.SelectSingleNode("//a[" + i2.ToString() + "]").InnerText;
if (Info2 == "ارسال" && i2 != 1)
{
Item it = new Item();
it.Info = "Reqeust again";
it.Link = "Not found";
items.Add(it);
return items;
}
string her = hrefList.GetAttributeValue("href", "Notfound").ToString();
if (her != "Notfound")
{
Link2 = her;
config.AllowAutoRedirect = false;
config.Method = "";
RequestManage mg = re.GetPageSource(manage, config, null, "http://tinyz.us/" + Link2);
Link2 = mg.Headers["Location"];
Item item = new Item();
item.Link = Link2;
item.Info = Info2;
items.Add(item);
}
else if (i2 != 1) break;
Info2 = "";
Info2 = "";
}
catch { }
}
}
return items;
}
}
}
حالا فقط با چند کد ساده میتونید لینک های صفحه رو استخراج کنید و در آرایه از نوع Item بریزید
string url = "http://tinyz.us/dl43862";
List<Scripts.Films.Item> i = new List<Scripts.Films.Item>();
i = TinyMoviez.GetLinks(url);
foreach (Scripts.Films.Item it in i)
Console.WriteLine("Info: {0}\nLink {1}", it.Info, it.Link);
Console.ReadLine();
MSC API
بدرود