Получение 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))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д