| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C#. Загрузка с сайта faufcc.ru

C#. Загрузка с сайта faufcc.ru

Ответ
Поиск в этой теме
Непрочитано 03.04.2023, 12:19 1 | #1
C#. Загрузка с сайта faufcc.ru
Нубий-IV
 
Инженер-философ
 
Хабаровск
Регистрация: 24.04.2019
Сообщений: 1,874

Простая консольная версия.

Сохраняет страницы, нумеруя их по порядку, для обработки или сшивки в PDF.

Код:
[Выделить все]
/*
 * www.FauFCC.ru Downloader
 * 
 * Загрузка с сайта https://www.faufcc.ru/
 * 
 * Ссылка на всплывающее окно с изображениями записано на главной странице в виде
 * 	https://www.faufcc.ru/technical-regulation-in-constuction/formulary-list/89001.pdf
 * Содержимое всплывающего окна можно загрузить по адресу
 *	https://www.faufcc.ru/technical-regulation-in-constuction/formulary-list/snipshow_v3.php?code=https://www.faufcc.ru/technical-regulation-in-constuction/formulary-list/89001.pdf
 * Ссылки на изображения в тексте содержимого записаны в виде
 *	<img id="img1"class="pagesc" src="/upload/reestrNTD1/89001/СП_14_2018_с_И2_И3_Ред_20220711_Страница_001.jpg" onLoad="this.parentElement.style.display='block';">   
 * Изображение страницы (файл JPG) можно загрузить по адресу
 * 	https://www.faufcc.ru/upload/reestrNTD1/89001/СП_14_2018_с_И2_И3_Ред_20220711_Страница_001.jpg
 */

using System;
using System.Collections.Generic;
using System.Net;
using System.Text.RegularExpressions;

namespace ffccd
{
	class ffccd
	{
		const string sImgStart = "<img ";
		const string sImgStop = ">";
		const string sImgContent = "[^>]+";

		const string sImgIdStart = "id=\"";
		const string sImgIdStop = "\"";
		const string sImgIdContent = "img([0-9]+)";
		
		const string sSrcStart = "src=\"";
		const string sSrcStop = "\"";
		const string sSrcContent = "([^\"]+)";

		const string sRegex =
			sImgStart +
			sImgIdStart + 
			sImgIdContent + 
			sImgIdStop + 
			sImgContent + 
			sSrcStart +
			sSrcContent + 
			sSrcStop +
			sImgContent +
			sImgStop;

		// Регулярное выражение для поиска ссылок на изображения со страницы
		static readonly Regex rePage = new Regex(sRegex);

		public static void Main(string[] args)
		{
			// Вывод подсказки
			Console.WriteLine("Download from https://www.faufcc.ru/");
			Console.WriteLine("Document address example:");
			Console.WriteLine("https://www.faufcc.ru/technical-regulation-in-constuction/formulary-list/89001.pdf");

			try {
				// Создание подключения
				var client = new WebClient();
				
				// Загрузка документов
				for(var i = 0; ; i++) // Счетчик документов 
				{
					// Запрос адреса ссылки
					Console.WriteLine("\nEnter document address: ");
					var sLink = Console.ReadLine();
					
					// Генерация адреса документа с изображениями
					var sUri = "https://www.faufcc.ru/technical-regulation-in-constuction/formulary-list/snipshow_v3.php?code=" + sLink;
					
					// Загрузка документа
					try {
						// Чтение содержимого страницы
						var bContent = client.DownloadData(sUri);
						var sContent = System.Text.Encoding.UTF8.GetString(bContent);
						
						// Поиск ссылок на изображения
						var matches = rePage.Matches(sContent);
						
						// Список найденных изображений (номер страницы, адрес страницы)
						var pages = new Dictionary<string, string>();
						
						// Заполнение списка изображений
						foreach (Match match in matches) {
							// Номер страницы
							var pageNum = match.Groups[1].Value;
			
							// Ссылка на изображение страницы
							var pageSrc = match.Groups[2].Value;
							
							// Добавление ссылки в список
							if (!pages.ContainsKey(pageNum))
								pages.Add(pageNum, pageSrc);				
						}
						
						// Загрузка изображений по списку
						foreach (var page in pages) {
							// Адрес изображения на сайте
							var imgAddress = "https://www.faufcc.ru/" + page.Value;
		
							// Номер файла изображения
							// Для загрузки разных документов за одну сессию в один каталог
							// к номеру страницы добавляется глобальный счетчик документов
							var imgName = i + int.Parse(page.Key).ToString("D6") + ".jpg";
							
							// Загрузка изображения с сайта на диск
							Console.WriteLine("Download page №" + page.Key);
							client.DownloadFile(imgAddress, imgName);
						}
					} catch (Exception e) {
						Console.WriteLine("Error: " + e.Message);
					}
					
					Console.WriteLine("Done");
				}
			} catch (Exception e) {
				Console.WriteLine("\nError: " + e.Message);
				Console.WriteLine("Press any key...");
				Console.ReadKey();
			}
		}
	}
}
Для загрузки скопировать адрес документа из браузера в консоль.
Во вложении - скомпилированный EXE

Миниатюры
Нажмите на изображение для увеличения
Название: ffccd.png
Просмотров: 350
Размер:	32.1 Кб
ID:	254701  

Вложения
Тип файла: zip ffccd.zip (3.9 Кб, 29 просмотров)

Просмотров: 817
 
Непрочитано 03.04.2023, 13:20
#2
ingt


 
Блог
 
Регистрация: 09.08.2022
Сообщений: 1,835


Работает.
ingt вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C#. Загрузка с сайта faufcc.ru

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#. Загрузка с сайта protect.gost.ru Нубий-IV Готовые программы 6 31.03.2023 13:31
Autocad Mep 2009 - полная загрузка процессора при работе с flex-возд-ми eugen2002 Вертикальные решения на базе AutoCAD 1 03.02.2012 12:33
MEP2009 - 100%-ная загрузка процессора при обработке таблицы eugen2002 Вертикальные решения на базе AutoCAD 9 17.11.2011 16:59
Как снизить трафик при редактировании Сайта T-Yoke Прочее. Программное обеспечение 42 04.02.2009 12:45
Вчера рекорд-завтра норма!... Или загрузка проектировщика Randolph Организация проектирования и оформление документации 22 01.03.2008 23:36