Получение 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))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы