604
社区成员
发帖
与我相关
我的任务
分享
private: // User declarations
void __fastcall OutputLog(String strMsg);
void __fastcall TForm1::OutputLog(String strMsg)
{
Memo1->Lines->Add(FormatDateTime("hh:nn:ss ", Now()) + strMsg);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OutputLog("正在获取网页数据...");
TMemoryStream *ms = new TMemoryStream;
IdHTTP1->Get("http://movie.mtime.com/56856/", ms);
LPSTR lpBuf = new char[ms->Size];
ms->Position = 0;
ms->Read(lpBuf, ms->Size);
delete ms;
String strText = Utf8ToAnsi(AnsiString(lpBuf));
delete []lpBuf;
OutputLog("网页数据获取完毕, 正在分析页面元素...");
String strFind, strTemp;
int nPos;
// 分析 上映日期
strFind = "<strong class=\"bold\">上映日期:</strong>";
nPos = strText.Pos(strFind);
strTemp = strText.SubString(nPos + strFind.Length() + 1, 256);
strTemp = strTemp.SubString(1, strTemp.Pos("<a href") - 1);
OutputLog("上映日期:" + CrnRemoveHTMLTag(strTemp));
// 分析 国家/地区
strText = strText.SubString(nPos, strText.Length());
strFind = "<strong>国家/地区:</strong>";
nPos = strText.Pos(strFind);
strTemp = strText.SubString(nPos + strFind.Length() + 1, 1024);
strTemp = strTemp.SubString(1, strTemp.Pos("</li>") - 1);
OutputLog("国家/地区:" + CrnRemoveHTMLTag(strTemp));
// 分析 类型
strText = strText.SubString(nPos, strText.Length());
strFind = "<strong>类型:</strong>";
nPos = strText.Pos(strFind);
strTemp = strText.SubString(nPos + strFind.Length() + 1, 1024);
strTemp = strTemp.SubString(1, strTemp.Pos("</li>") - 1);
OutputLog("类型:" + CrnRemoveHTMLTag(strTemp));
OutputLog("分析完成.");
}
String __fastcall CrnRemoveHTMLTag(String strHtmlText)
{
int nPos;
String strResult;
while (strHtmlText.Pos("<") > 0)
{
nPos = strHtmlText.Pos("<");
strResult += strHtmlText.SubString(1, nPos - 1);
strHtmlText = strHtmlText.Delete(1, strHtmlText.Pos(">"));
}
strResult += strHtmlText;
strResult = StringReplace(strResult.Trim(), "\t", "", TReplaceFlags() << rfReplaceAll);
strResult = StringReplace(strResult, " ", " ", TReplaceFlags() << rfReplaceAll);
// 这一行是根据那个页面多加的,应该是网页制作者的笔误,少写了一个分号
strResult = StringReplace(strResult, " ", " ", TReplaceFlags() << rfReplaceAll);
return strResult;
}
17:36:08 正在获取网页数据...
17:36:11 网页数据获取完毕, 正在分析页面元素...
17:36:11 上映日期:2010年11月19日 中国
17:36:11 国家/地区:英国 / 美国
17:36:11 类型:冒险 / 悬疑 / 动作 / 奇幻
17:36:11 分析完成.