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 = $"{选中项数据.图片}"; }
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"); } } }
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"); } }