Получение Url картинок из HTML-кода - C#
Формулировка задачи:
Здравствуйте. Задача у кода вытаскивать url`ы картинок с html файлов и сверять, нету ли этой картинки в тхт файле уже. Код я написал, но уж очееень долго он работает... (в url3.txt порядка 70 000 строк)
Спасибо
public void Run2() { string str; DirectoryInfo dir = new DirectoryInfo(@"C:\html"); DirectoryInfo[] filesList = dir.GetDirectories(); foreach (DirectoryInfo file in filesList) { DirectoryInfo dir2 = new DirectoryInfo(file.FullName); FileInfo[] filesList2 = dir2.GetFiles(); foreach (FileInfo file2 in filesList2) { //MessageBox.Show(file2.FullName); break; str = string.Empty; using (System.IO.StreamReader reader = System.IO.File.OpenText(file2.FullName)) { str = reader.ReadToEnd(); Regex re1 = new Regex(@"(?<=<input .*?src\s*=\s*"")[^""]+(?="".*?>)"); Regex re2 = new Regex(@"(?<=<img .*?src\s*=\s*"")[^""]+(?="".*?>)"); //получаем набор значений для аттрибута src MatchCollection mc1 = re1.Matches(str); MatchCollection mc2 = re2.Matches(str); foreach (Match m1 in mc1) { if (!FindSubstrInStr(m1.Value)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\url.txt", true); sw.WriteLine(m1.Value + ";"); // запись sw.Flush(); // очистка буфера sw.Close(); } } foreach (Match m2 in mc2) { if (!FindSubstrInStr(m2.Value)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\url.txt", true); sw.WriteLine(m2.Value + ";"); // запись sw.Flush(); // очистка буфера sw.Close(); } } } } } } static public bool FindSubstrInStr(string searchquery) { bool rtrn = false; string[] lines = System.IO.File.ReadAllLines(@"C:\url3.txt"); foreach (string line in lines) { if (line.IndexOf(searchquery) != -1) { rtrn = true; break; } } return rtrn; }
Решение задачи: «Получение Url картинок из HTML-кода»
textual
Листинг программы
foreach (var file in dir.GetFiles("*.html", SearchOption.AllDirectories))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д