Exemplo n.º 1
0
            public void  载(object haha)
            {
                Form1 form1 = (Form1)haha;

                if (Directory.Exists($"{Application.StartupPath}\\down\\{gid}"))
                {
                    return;
                }
                foreach (string ul in 其他信息2)
                {
                    Thread.Sleep(1000);
                    var wc = new WebClient();
                    wc.Credentials = CredentialCache.DefaultCredentials;
                    wc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
                    wc.Headers.Add("cookie", "__cfduid=da53676e4e2d0127fc0430b7a32b601141585825584");
                    wc.Headers.Add("content-type", "text/html; charset=UTF-8");
                    byte[] vb = null;
                    try
                    {
                        vb = wc.DownloadData(ul);
                    }
                    catch (Exception)
                    {
                        for (int i = 1; i <= 基本设置.重试次数; i++)
                        {
                            try
                            {
                                Thread.Sleep(基本设置.重试毫秒);
                                vb = wc.DownloadData(ul);
                            }
                            catch (Exception k)
                            {
                                if (i != 基本设置.重试次数)
                                {
                                    continue;
                                }
                                form1.textBox2.AppendText($"错误编号4-[请手动下载]-错误信息:[{ul}]{k.Message}\r\n");
                                continue;
                            }
                            break;
                        }
                    }
                    var dt = Encoding.UTF8.GetString(vb);
                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    doc.LoadHtml(dt);
                    try
                    {
                        var      htmlnode = doc.DocumentNode.SelectSingleNode($"/html[1]/body[1]/div[1]/div[2]/a[1]");
                        HtmlNode s        = htmlnode.SelectSingleNode("img");
                        string   ull      = s.OuterHtml.Split('"')[3];
                        载图片      临时       = new  载图片();
                        临时.载url = ull;
                        Directory.CreateDirectory($"{Application.StartupPath}\\down\\{gid}");
                        临时.保存路径 = $"{Application.StartupPath}\\down\\{gid}\\{ul.Split('-')[2]}.jpg";
                        if (File.Exists($"{Application.StartupPath}\\down\\{gid}\\{ul.Split('-')[2]}.jpg"))
                        {
                            continue;
                        }
                        临时.DownPic(haha);
                    }
                    catch (Exception l)
                    {
                        form1.textBox2.AppendText($"错误编号3-[已经再次添加到下载列表]-错误信息:[{URL}]{l.Message}\r\n");
                        其他信息2.Add(ul);
                    }
                }

                for (int i = 0; i < form1.listView2.Items.Count; i++)
                {
                    if (form1.listView2.Items[i].Text == kye)
                    {
                        form1.listView2.Items[i].Remove();
                    }
                }
            }
Exemplo n.º 2
0
        private void 线程方法(object s)
        {
            数据 k = (数据)s;

            CheckForIllegalCrossThreadCalls = false;
            Thread.Sleep(500);
            var wc1 = new WebClient();

            wc1.Credentials = CredentialCache.DefaultCredentials;
            wc1.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            wc1.Headers.Add("cookie", "__cfduid=da53676e4e2d0127fc0430b7a32b601141585825584");
            wc1.Headers.Add("content-type", "text/html; charset=UTF-8");
            for (int i = 0; i < k.URL.Count; i++)
            {
                byte[] vb1 = null;
                try
                {
                    vb1 = wc1.DownloadData($"{k.URL[i]}");
                }
                catch (Exception)
                {
                    for (int j = 1; j <= 基本设置.重试次数; j++)
                    {
                        try
                        {
                            Thread.Sleep(基本设置.重试毫秒);
                            vb1 = wc1.DownloadData($"{k.URL[i]}");
                        }
                        catch (Exception)
                        {
                            if (j != 基本设置.重试次数)
                            {
                                continue;
                            }
                            MessageBox.Show($"连不上,请再次尝试");
                            return;
                        }
                        break;
                    }
                }
                var dt1 = Encoding.UTF8.GetString(vb1);
                HtmlAgilityPack.HtmlDocument doc1 = new HtmlAgilityPack.HtmlDocument();
                doc1.LoadHtml(dt1);
                try
                {
                    var htmlnode1 = doc1.DocumentNode.SelectSingleNode($"/html/body/div[2]/div[4]/div[1]/div[3]/table/tr[6]/td[2]");
                    k.页面数 = htmlnode1.InnerText.Split(' ')[0];
                    if (i == 0 && Convert.ToInt32(k.页面数) > 40)
                    {
                        for (int l = 1; l <= (Convert.ToInt32(k.页面数) - 1) / 40; l++)
                        {
                            k.URL.Add(k.URL[0] + "/?p=" + l);
                        }
                    }
                    htmlnode1 = doc1.DocumentNode.SelectSingleNode($"/html/body/div[2]/div[4]/div[1]/div[4]/table/tr[2]/td");
                    k.评分      = htmlnode1.InnerText.Split(':')[1];
                    htmlnode1 = doc1.DocumentNode.SelectSingleNode($"/html/body/div[6]");
                    HtmlNodeCollection s1 = htmlnode1.SelectNodes("div");
                    foreach (HtmlNode ls1 in s1)
                    {
                        try
                        {
                            string kkk = ls1.OuterHtml.Split('"')[5].Split('(', ')')[1];
                            载图片    临时  = new  载图片();
                            临时.载url = kkk;
                            临时.保存路径 = Application.StartupPath + "\\temp\\" + k.gid + kkk.Split('-')[1];
                            if (!k.其他信息1.Contains(临时.保存路径))
                            {
                                k.其他信息1.Add(临时.保存路径);
                                if (!File.Exists(临时.保存路径))
                                {
                                    临时.DownPic(this);
                                }
                            }
                            k.其他信息2.Add(ls1.OuterHtml.Split('"')[7]);
                        }
                        catch (Exception)
                        {
                        }
                    }
                    if (i == k.URL.Count - 1)
                    {
                        缓存目录.Add(k.kye.ToString(), k);
                    }
                }
                catch (Exception l)
                {
                    textBox2.AppendText($"错误编号2--错误信息:[{k.URL[i]}]{l.Message}\r\n");
                }
            }
        }