`
buliedian
  • 浏览: 1238379 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

delphi网页数据抓取

 
阅读更多
简单:
IdHttp:TIdHttp;
Params:TStrings;

Begin
Params:=TStrinList.Create;
IdHttp:=TIdHttp.Create(Nil);
//提交网页的参数
Params.Add('参数1=XXX');
Params.Add('参数2=YYY');
Try
IdHttp.Get('你要的网址',Params);
Memo1.Text:=
Finlly
Params.Free;
IdHttp.Free;
end;
{你分析Memo1中的数据}
{将数据保存至数据库}
end;



function TLisReport.DownloadFile(const remoteurl: string; Stream: TStream;
DownloadTitle: string): Boolean;

var
NetHandle: HINTERNET;
UrlHandle: HINTERNET;
BytesRead: DWORD;
Buffer: array[1..8192] of Char;
HaveRead: DWORD;

lpdwlen, lpdwidx, lpdword: DWord;

begin
Result := false;
NetHandle := InternetOpen(
'htmlcopy for Lis',
INTERNET_OPEN_TYPE_DIRECT,
nil,
nil,
0);
if Assigned(NetHandle) then begin
UrlHandle := InternetOpenUrl(
NetHandle,
PChar(remoteurl),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
if Assigned(UrlHandle) then
begin
HaveRead := 0;
lpdword := 0;
lpdwlen := 4;
lpdwidx := 0;

HttpQueryInfo(UrlHandle, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER, @lpdword, lpdwlen, lpdwidx);

repeat
FillChar(Buffer, 8192, 0);
InternetReadFile(UrlHandle, @Buffer[1], SizeOf(Buffer), BytesRead);
Stream.Write(Buffer[1], bytesread);
HaveRead := HaveRead + bytesread;
hintProgress(DownloadTitle, round(HaveRead * 100 / lpdword));

until BytesRead = 0;

result := true;
hintProgress(DownloadTitle, 0);

end;
InternetCloseHandle(UrlHandle);
end;
InternetCloseHandle(NetHandle);
end;
无外乎两种方法:
1用http的控件来POST或者GET,这里要注意NMHTTP在POST时有缺陷,论坛里有论述,建议用ICS或者INDY
2用IHTMLDOCUMENT2来做,这种方法就是通过IE接口在程序里面进行提交
我曾经为某个网上评选活动,两种投票器都作过,很简单的

我用的是 Delphi 7 和 Indy 的 TidHttp 控件
对于有Session的主页进行 Post时,会出现过期等字样
下面是程序,求高手指点
//----------------------------------------------------
procedure TMainForm.btnRunClick(Sender: TObject);
var
Source: TStrings;
Response: TMemoryStream;
S, Cookie: String;
i: integer;
begin
Response := TMemoryStream.Create;
Source := TStringList.Create;

S := Http.Get(Page1);
Memo1.Text := S;
// 从返回的页面中找出cookie, 并增加到http.Request中
for i := 0 to Http.Response.RawHeaders.Count -1 do
if UpperCase(LeftStr(Http.Response.RawHeaders[i], 10)) = 'SET-COOKIE' then
begin
Cookie := Trim(Copy(Http.Response.RawHeaders[i], 12, MaxInt));
Cookie := Copy(Cookie, 1, Pos(';', Cookie) - 1);
Http.Request.RawHeaders.Add('Cookie:'+ Cookie);
end;
// 再去下一页, 先准备数据
Source.Clear;
Source.Add('USERnumber=' + UserName + '&pwd=' + PassWord + '&UserType=0'
+ '&imageField2.x=19&imageField2.y=8');

Memo1.Text := Http.Post(Page2, Source);

Source.Free;
Response.Free;
//----------------------------------------------------



你可以通过这个链接引用该篇文章:http://chinamxm.bokee.com/viewdiary.13104228.html


分享到:
评论

相关推荐

    delphi抓取网页数据

    在IT行业中,Delphi是一种基于Object Pascal编程语言的集成开发环境(IDE),它以其高效、高性能的...在122考试平台的案例中,我们可以构建一个自动化的数据抓取程序,定期检查预约情况,以便提前了解学员的预约动态。

    delphi网页数据提取工具

    《Delphi实现网页数据提取工具详解》 在信息化飞速发展的今天,网页数据提取成为许多企业和个人获取网络信息的重要手段。Delphi作为一种强大的面向对象的编程语言,以其高效的执行效率和丰富的库支持,成为了开发...

    delphi抓取网页源码

    在Delphi编程环境中,我们可以利用WinInet库来实现网页源码的抓取。这个过程涉及到网络编程的基础知识,特别是HTTP协议的使用。WinInet是Microsoft提供的一种API,它为应用程序提供了访问Internet的基本功能,包括...

    delphi 网页采集之网址提取,内容提取,图片提取,网页源码

    delphi2010 及 delphi7 下 网页采集之网址提取,内容提取,图片提取,网页源码。 其中2010时,去掉一句注释即可。 用于网页分析的delphi源代码,可以提取网页中的连接、图片、内容等。 源代码非常简单,便于分析。

    Delphi网页爬取.rar

    在本"Delphi网页爬取.rar"压缩包中,我们可以看到一个使用Delphi构建的网络爬虫项目。网络爬虫是自动抓取互联网信息的一种程序,常用于数据挖掘、市场分析和搜索引擎索引更新。 首先,让我们了解Delphi如何实现网络...

    网页数据自动抓取数据,自动填写

    自动抓取Salseforce.com页面信息到本地数据库,采用Delphi2010,可以进行不同页面数据间自动复制填写,采用IHTMLDocument2,提供关键代码

    delphi 批量抓取页面E-MAIL 源码

    在IT行业中,Delphi是一种基于Object Pascal编程语言的集成开发环境(IDE),它以其高效、高性能的Windows应用程序开发而闻名。...通过深入理解和研究这个源码,可以提升在Web数据抓取方面的技能。

    ASP网站远程抓取文档的方法.rar_asp网站_delphi asp_抓取

    在ASP网站中,远程抓取文档通常涉及到网络编程和数据获取技术,这可以帮助开发者从其他网站获取信息,例如新闻、数据或者网页内容,用于集成到自己的网站中。Delphi ASP则是使用Delphi语言开发ASP应用的一种方式,它...

    delphi网页采集

    在本项目中,"delphi网页采集"指的是使用Delphi技术实现的网页内容抓取功能。这种功能可以帮助开发者从互联网上获取各种信息,包括文字内容和图片,这对于数据分析、网站监控、内容聚合等场景非常有用。下面将详细...

    Delphi 网页采集程序 源码

    这个“Delphi 网页采集程序 源码”提供了一个使用Delphi构建的工具,用于从互联网上抓取和处理网页数据。网页采集,也称为网络爬虫或网页抓取,是一种自动化技术,用于从万维网收集大量信息,通常用于数据分析、市场...

    delphi7+网页采集之网址提取,内容提取,图片提取,网页源码

    在网页采集领域,Delphi 7可以用来创建自定义的HTTP客户端,通过发送HTTP请求来获取网页数据。 **网址提取**是网页采集的第一步。在Delphi 7中,我们可以利用 Indy 或 WinInet 组件库来实现HTTP请求。通过向服务器...

    delphi语言编写的抓取实例

    这个“delphi语言编写的抓取实例”可能是一个示例项目,展示了如何在Delphi中实现网络数据抓取,也就是常说的Web Scraping。 在Delphi中进行网络抓取,通常会涉及到以下几个核心知识点: 1. **HTTP请求库**:...

    TEdgeBrowser控件+delphi10.4.1获取网页源码demo.rar

    在本文中,我们将深入探讨如何在Delphi 10.4.1环境下使用TEdgeBrowser控件来获取网页源码,并结合JavaScript实现一个演示示例。TEdgeBrowser控件是基于Microsoft Edge Chromium引擎的,它为Delphi开发者提供了一种...

    delphi写的 正则分析抓取html数据

    在本项目中,“delphi写的 正则分析抓取html数据”是利用Delphi编程语言实现的一个应用,它专注于从HTML文档中提取所需的信息。Delphi是一种基于Object Pascal的集成开发环境(IDE),以其高效、跨平台和丰富的库...

    delphi网页邮件抓发系统

    Delphi网页邮件抓发系统是一种基于Delphi编程语言开发的工具,主要用于从网页中抓取和发送电子邮件。这个系统结合了网络爬虫技术与邮件处理功能,为用户提供了一种高效的方式来自动化处理邮件通信。以下是对这个系统...

    delphi网页邮件抓发系统.zip

    标题中的"Delphi网页邮件抓发系统"是一个基于Delphi编程环境开发的工具,用于从网页上抓取和发送电子邮件。Delphi是Embarcadero Technologies公司推出的一种面向对象的可视化编程工具,它使用Pascal语言,并且拥有...

    delphi网页邮件抓发管理系统.rar

    《Delphi网页邮件抓发管理系统详解》 在IT领域,Delphi是一款强大的Windows应用程序开发工具,以其高效、直观的编程环境和丰富的组件库而受到广大开发者喜爱。本系统——"Delphi网页邮件抓发管理系统",是利用...

Global site tag (gtag.js) - Google Analytics