Вывести все ссылки на любой странице любого сайта - C#
Формулировка задачи:
В программе вводиться ссылка любого сайта и должно вывести все ссылки которые есть в html коде данной страницы.
на форме есть текстбокс для ввода ссылки, button что бы нажать и получить результат и лэйбл для вывода всех ссылок на странице
вот код (но выводит, только одну ссылку всегда):
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; namespace ForA { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void button1_Click(object sender, EventArgs e) { string link = Convert.ToString(textBox1.Text); WebClient client = new WebClient(); client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); string page = client.DownloadString(link); // достали html код и засунули в стринг DumpHRefs(page); } public void DumpHRefs(string link) { Match m; string HRefPattern = "href\\s*=\\s*(?:[\"'](?<1>[^\"']*)[\"']|(?<1>\\S+))"; try { m = Regex.Match(link, HRefPattern, RegexOptions.IgnoreCase | RegexOptions.Compiled, TimeSpan.FromSeconds(1)); while (m.Success) { label2.Text = Convert.ToString(m.Groups[1]); m = m.NextMatch(); } } catch (RegexMatchTimeoutException) { Console.WriteLine("The matching operation timed out."); } } } }
Решение задачи: «Вывести все ссылки на любой странице любого сайта»
textual
Листинг программы
label2.Text += Convert.ToString(m.Groups[1]) + "\n";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д