关于Delphi 根据URL获取该网址title(也即是标题)的问题~~~

随风随恨 2014-09-29 04:51:47
RT,根据要求,要根据一个URL,例如http://www.baidu.com这个网址,就要得到其网页的标题,有什么方法么?那个什么TIdHTTP控件用不好,再次谢过!
...全文
470 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
随风随恨 2014-10-09
  • 打赏
  • 举报
回复
感谢楼上诸位的回答,怪我没说明白,我用了webbrowser 控件,然后使用IHTMLDocument2(wb1.Document).title这句话就出来了,散分!
Mit1208 2014-10-02
  • 打赏
  • 举报
回复
idhttp你感觉不好用,应该是最后返回的编码问题,自己定义一个字符流,然后给返回的字符流设置为UTF8编码就可以了。
nm_wyh 2014-09-30
  • 打赏
  • 举报
回复
两种方式都可以!但是3楼的相对复杂一下,你可以用2楼的,比较简单!
s11ss 2014-09-29
  • 打赏
  • 举报
回复
用Internet控件页的TTcpClient控件速度最快!
procedure TForm1.Button1Click(Sender: TObject);
var
  buf: array[0..1023] of Char;
  I, J, K: Integer;
begin
  TcpClient1.RemoteHost := 'www.baidu.com';
  TcpClient1.RemotePort := '80';
  TcpClient1.Connect;
  buf :=
    'GET / HTTP/1.1'+sLineBreak+
    'UserAgent: Mozilla/3.0 (compatible)'+sLineBreak+
    'Host: www.baidu.com'+sLineBreak+
    'Connection: Close'+sLineBreak+
    sLineBreak;
  TcpClient1.SendBuf(buf, 256);
  buf := '';
  TcpClient1.ReceiveBuf(buf, 1024);
  buf := '';
  TcpClient1.ReceiveBuf(buf, 1024);
  TcpClient1.Disconnect;

  for I:=0 to 1023-5 do
    if (buf[I]='<') and (buf[I+1]='t') and (buf[I+2]='i') and (buf[I+3]='t') and (buf[I+4]='l') and (buf[I+5]='e') then
      for J:=I+6 to 1023-5 do
        if buf[J]='>' then
          for K:=J+1 to 1023-5 do
            if buf[K]='<' then
            begin
              buf[K-(J+1)]:=#0;
              ShowMessage(Utf8Decode(buf));
              Exit
            end else
              buf[K-(J+1)]:=buf[K]
end;
缘中人 2014-09-29
  • 打赏
  • 举报
回复
procedure TForm1.itle1Click(Sender: TObject);
var
  Document: IHTMLDocument2;
begin
  WebBrowser1.Navigate('www.baidu.com');

  while WebBrowser1.busy do
    Application.ProcessMessages;

  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
    Application.ProcessMessages;
  Document := WebBrowser1.Document as IHTMLDocument2;
  Caption := Document.title;
end;
随风随恨 2014-09-29
  • 打赏
  • 举报
回复
肿么木有人来哇
一个利用IE实现实时报表功能的DLL,本DLL免费无功能限制,可以提供给DELPHI、VB、C语言、.NET 上使用。 PrintPaperExists 打印纸张是否存在 参数: PaperName 纸张名称 SelectPrintPaper 选择纸张和打印方向 参数: PaperName 纸张名称 参数: Orientation 纸张方向 1-纵向 2-横向 PrintNewPaper 添加打印纸张 参数: PaperName 纸张名称 参数: PaperWidth 纸张宽度 参数: PaperHeight 纸张高度 PrintDelPaper 删除打印纸张 参数: PaperName 纸张名称 IsPrintExists 打印机是否存在 IEPaperSetting IE打印纸张边距和页头和页脚设置 参数: Top 顶部边距(毫米) 参数: Bottom 底部边距(毫米) 参数: Left 左边边距(毫米) 参数: Right 右边边距(毫米) 参数: Header 页头设置 参数: Footer 页脚设置 &w 网页标题 &u 网页地址 (URL) &d 短日期格式(由“控制面板”中的“区域设置”指定) &D 长日期格式(由“控制面板”中的“区域设置”指定) &t 由“控制面板”中的“区域设置”指定的时间格式 &T 24 小时时间格式 &p 当前页码 &P 总页数 &b 文本右对齐(请把要右对齐的文字放在“&b”之后) &b&b 文字居中(请把要居中的文字放在“&b”和“&b” 之间) && 单个 & 号 (&) PrintHtmlView 打印预览HTML文件 参数: UrlPage 网页URL地址 参数: Title 打印预览标题 PrintCodeView 打印预览HTML代码 参数: HtmlCode 网页HTML代码 参数: Title 打印预览标题 IEPrintBackground 打印是否打印背景 参数: IsShow 是否显示背景 About 获取作者信息
首先十分感谢你的使用. 同时也希望你能对这个功能包进行扩充...发布你的扩充后的版本. --------------------------------------------------------- ^^ 声明这个组件包只能在delphi7上正常安装. 如果您用的是delphi6.则会在安装时出错。 ------------------------------------------------- 作者:李金浩 QQ:67260745 E-mail:lijinjie2793311@163.com 功能包中的大部分功能模块为本人自己所写。。部分收录我的网友的作品及网上比较精典的程序段。    Function HexBCDToint(sHexBCD:Byte):integer;    Function IntToBCD(Int:Byte):word;    Function MinuteToTime(Minute:Double):TdateTime;overload;//分钟到标准时间的转换    Function MinuteToTime(Minute:Double;var DayCount:integer):TdateTime;overload; //------------------------------------------------------------------------------    Function GetWeekOfChina(dDay:TdateTime):string;//得到星期    Function GetWeekOfNum(dDay:TdateTime):integer; //------------------------------------------------------------------------------    Function IsStrAsNumber(NumStr:string):Bool;//判断字符串是不是有效数字在字符串    Function IsStrInOtherStr(mainStr,FindStr:string):Bool;//检测在一个字符串中是否包括另一个字符串    function IsCOMClassRegistered(GUID:TGUID):Boolean;//判断一个COM对像是否已注册    Function IsBDEInstalled:boolean;//查看BDE是否安装    function GetPYIndexChar( hzchar:string):char;//得到汉字的首字母    Function Squ(X,Y:integer):integer;overload;//计算x的Y次方    Function Squ(X:Double;Y:integer):Double;overload;//计算x的Y次方    Function RandomNumByGUID:String;  //--------------系统功能------------    Function AppRunOnce:Boolean;//让程序只能运行一个实例    procedure AutoRunByReg(FileName:string='');//让程序自动运行    procedure DelAutoRunByReg(KeyName:string='');//删除一个自启动项    procedure MoveWindow(handle:Thandle);overload;//托动无标题窗体    Function GetAppPath(AddLastName:string=''):string;//得到程序的当前目录    Procedure ReMoveWinTitle(Form:Tform);//移去窗体的Title;    procedure BeepEx(Freq:Word;MSecs:LongInt); //DoBeep调用    procedure ClickStartMenu;//通过代码击活开始菜单    procedure OpenScreenSave;//打开屏幕保护   // procedure DelTree(DirName:String);//删除目录    procedure DeleteDir(SourcePath: String); //删除指定文件夹(含子文件夹),文件夹及其夹内文件可以具有只读或隐藏属性    procedure DelSelfApp;//程序在运行完后就删除自己    (*-----------------*)    procedure HideTaskBar(bHide:boolean=False);//显示或掩藏TaskBar    procedure DisplayOFFON(SW: boolean);//关闭和打开显示器    procedure HideDesktop(sw:Boolean=false);//显示和隐藏桌面    procedure HideDesktopAndTaskBar(sw:Boolean=false);//同时隐藏桌面和任务栏    procedure HideTrayNotify(sw:Boolean=false);//隐藏系统通知区域    procedure HideWinButton(sw:Boolean=false);//隐藏开始按钮    procedure HideQuickLaunchBar(sw:Boolean=false);//隐藏快速启动按钮栏   //  procedure HideAppInTastWin(sw:Boolean=False);//使程序在任务管理器中隐藏    procedure DisbleQuikKey(sw:boolean=false);//屏蔽ALT+F4和ALT+Ctrl+Del    Function GetTaskBarHeight:integer;//得到任务栏的高度 //------------------------------------------------------------------------------    function GetDesktopListViewHandle: THandle; { 得到桌面列表试图的句柄 }    procedure MinWinAll;//最小化所有的窗体    procedure CloseWinAll;//关闭所有窗体    procedure DrawWindowRect(handle: Thandle;wColor: Tcolor=clBlack;PenWidth:integer=1);//给窗体加个边框    Procedure SetParentWinDefFont(Sender:TObject;const defFont:Tfont=nil);//设置parent窗体的默认字体    {得到memo中光标所在的位置,行号,行长}    procedure GetMemoMousePos(m:Tmemo;var posValue:TmemoPos);overload;    procedure GetMemoMousePos(m:TRichEdit;var posValue:TmemoPos);overload;    //Memo翻页    procedure setScrollPos(MHandle:Thandle;const pos:TClickType=PageDown);overload;    //得到指定窗体的大小    procedure GetWinRect(const WinHandle:HWND;var winRect:TwinRect);    procedure TimeDelay(DT:Dword);//精确毫秒级延时    procedure SetIPaddress(SIP: TNetValue;const isAuto:boolean=false);//设定网络Ip地址    Function GetLocalIP:string;//得到本机的IP地址    Procedure OpenURL(URL:string);//打开1个web URL //============================================================================== // 这一部分的函数摘自其他作者处.姓名不详 //==============================================================================    function GetDisplayFrequency: Integer; //获取显示刷新率    function GetIdeSerialNumber: String; //获取第一个硬盘的序列号    function GetCPUSpeed: Double; //获取当前CPU速率    Function GetCPUID:string; //获取CPU ID    Function GetCPUVendor: string; //获取CPU 类型    Function GetFileLastAccessTime(sFileName:string):TDateTime; //获取文件最后访问日期和时间    Function GetFileCreateTime(const strFileName:string):TDateTime; //获取文件创建时间    Function GetFileModifyTime(const strFileName:string):TDateTime; //获取文件修改时间    Function GetDNSTOIP(DNSName:String):String; //把域名转化为IP地址    Function GetDNSName(IPAddress:String):String; //把IP地址转化为域名
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。   Bootcfg   bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。   含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。   用法:   bootcfg /default  设置默认引导项。   bootcfg /add    向引导列表中添加 Windows 安装。   bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。   注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。   bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。   注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。   bootcfg /list   列出引导列表中已有的条目。   bootcfg /disableredirect 在启动引导程序中禁用重定向。   bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]   在启动引导程序中通过指定配置启用重定向。   范例: bootcfg /redirect com1 115200 bootcfg /redirect useBiosSettings   hkdsk   创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。   含有下列参数的 chkdsk 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 chkdsk 命令。   vol [drive:] [ chkdsk [drive:] [/p] [/r]   参数  无   如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p   即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r   找到坏扇区并恢复可读取的信息。隐含着 /p 参数。   注意 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart   创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。   diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size]   参数 无   如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。   /add   创建新的分区。   /delete   删除现有分区。   device_name   要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称:   DeviceHardDisk0   drive_name   以驱动器号表示的待删除分区。仅与 /delete 同时使用。以下是驱动器名称的范例:   D:   partition_name   以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /delete 同时使用。以下是分区名称的范例:   DeviceHardDisk0Partition1    大小   要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。   范例   下例将删除分区: diskpart /delete Device HardDisk0 Partition3 diskpart /delete F:   下例将在硬盘上添加一个 20 MB 的分区:   diskpart /add Device HardDisk0 20   Fixboot

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧