Загрузка 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); // загрузка начальной страницы
}