コード例 #1
0
ファイル: Form1.cs プロジェクト: huibaigu/e-hentai_in_windows
 private void 填充(string key)
 {
     中项数据 = 缓存目录[key];
     图片页数 = 0;
     textBox1.AppendText($"标题:{选中项数据.名称}\r\n\r\n");
     textBox1.AppendText($"时间:{选中项数据.时间}\r\n\r\n");
     textBox1.AppendText($"评分:{选中项数据.评分}\r\n\r\n");
     textBox1.AppendText($"GID:{选中项数据.gid}\r\n\r\n");
     textBox1.AppendText($"ID:{选中项数据.kye}\r\n\r\n");
     textBox1.AppendText($"页面数:{选中项数据.页面数}");
     pictureBox1.ImageLocation = $"{选中项数据.图片}";
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: huibaigu/e-hentai_in_windows
        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");
                }
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: huibaigu/e-hentai_in_windows
        private void button1_Click(object sender, EventArgs e)
        {
            Thread.Sleep(500);
            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($"https://e-hentai.org/?page={页数}&f_cats=1021");
            }
            catch (Exception)
            {
                for (int i = 1; i <= 基本设置.重试次数; i++)
                {
                    try
                    {
                        Thread.Sleep(基本设置.重试毫秒);
                        vb = wc.DownloadData($"https://e-hentai.org/?page={页数}&f_cats=1021");
                    }
                    catch (Exception)
                    {
                        if (i != 基本设置.重试次数)
                        {
                            continue;
                        }
                        MessageBox.Show($"连不上,请再次尝试");
                        return;
                    }
                    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[2]/div[2]/table[2]");
                HtmlNodeCollection s   = htmlnode.SelectNodes("tr");
                ListViewItem       kn0 = new ListViewItem();
                foreach (HtmlNode ls in s)
                {
                    try
                    {
                        string[] st = ls.OuterHtml.Split('"');
                        数据       k  = new 数据();
                        try
                        {
                            k.称  = st[21];
                            k.图片 = st[25];
                            string[] npt = st[31].Split('=', '&', (char)39);
                            k.URL.Add($"https://e-hentai.org/g/{npt[2]}/{npt[4]}");
                            k.时间  = st[34].Split('>', '<')[1];
                            k.gid = npt[2];
                            k.kye = (++缓存数量).ToString();
                        }
                        catch
                        {
                            k.称  = st[23];
                            k.图片 = st[27];
                            string[] npt = st[33].Split('=', '&', (char)39);
                            k.URL.Add($"https://e-hentai.org/g/{npt[2]}/{npt[4]}");
                            k.时间  = st[36].Split('>', '<')[1];
                            k.gid = npt[2];
                            k.kye = (++缓存数量).ToString();
                        }
                        kn0      = new ListViewItem();
                        kn0.Text = 缓存数量.ToString();
                        kn0.SubItems.Add(k.称);
                        kn0.SubItems.Add(k.URL[0]);
                        listView1.Items.Add(kn0);
                        //////////////////////////////////
                        //线程方法(k);
                        Thread ssa = new Thread(线程方法);
                        ssa.IsBackground = true;
                        ssa.Start(k);
                        //////////////////////////////////下载所有略缩图
                    }
                    catch (Exception)
                    {
                    }
                }
                Text = $"当前第{++页数}页";
            }
            catch (Exception k)
            {
                textBox2.AppendText($"错误编号1--错误信息:{k.Message}\r\n");
            }
        }