Загрузка html страницы, просмотр и сохранение html как текста

 

Компонента webBrowser

 

 

Загрузка

 

#include <windows.h>

#include <stdio.h>

#include <string.h>

#pragma once

 

namespace testweb {

 

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace System::IO;

using namespace Runtime::InteropServices;

........................................

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

String^ pt = Directory::GetCurrentDirectory();

pt="file://"+pt+"\\mysite.html";

webBrowser1->Navigate(pt);

// webBrowser1->Navigate("file://c:\\work\\mysite.html");

// webBrowser1->Navigate("http://www.rambler.ru");

}

// прямая адресация файла загрузки

// webBrowser1->Navigate("file://c:\\work\\mysite.html");

// загрузка страницы сайта

// webBrowser1->Navigate("http://www.rambler.ru");

 

 

 

Сохранение html как текст

 

#include <windows.h>

#include <stdio.h>

#include <string.h>

#include "Work.h"

#pragma once

 

namespace testweb {

 

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace System::IO;

using namespace Runtime::InteropServices;

Work wk; // объект вспомогательного класса

.......................

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

String^ pt = Directory::GetCurrentDirectory();

pt="file://"+pt+"\\mysite.html";

webBrowser1->Navigate(pt);

String ^s;

StreamReader ^rd = gcnew StreamReader // чтение текста

(webBrowser1->DocumentStream,

System::Text::Encoding::GetEncoding(1251));

s= rd->ReadToEnd();

rd->Close();

char* chars =

( char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();

strcpy(wk.TextHtml,chars);

Marshal::FreeHGlobal(IntPtr((void*)chars));

wk.SaveHtml();

}

 

class Work

{

public:

char TextHtml[5000];

int LenHtml;

void SaveHtml();

Work(void);

~Work(void);

};

 

Вариант:

String ^s;

s=webBrowser1->DocumentText;

 

не работает при наличии русских букв в windows кодировке (1251)

 

<HTML>

<HEAD>

<TITLE> Мой простой сайт </TITLE>

</HEAD>

<BODY>

<P>

Лабораторная работа 14

<BR>

Знакомство с html

</P>

<A HREF='TASK.HTML'>ЗАДАНИЯ </A>

</BODY>

</HTML>

 

Переход по ссылке.

 

#include <windows.h>

#include <stdio.h>

#pragma once

 

namespace testweb{

 

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace System::IO;

/// <summary>

/// Сводка для Form1

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

 

int Regim;

 

...................

 

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

Regim=0;

String^ pt = Directory::GetCurrentDirectory();

pt="file://"+pt+"\\mysite.html";

webBrowser1->Navigate(pt); // загрузка начальной страницы

}