gpt4 book ai didi

delphi - 用DELPHI获取网页内容

转载 作者:行者123 更新时间:2023-12-03 02:32:02 25 4
gpt4 key购买 nike

我正在尝试检索 <table><tbody>本页部分:

http://www.mfinante.ro/infocodfiscal.html?captcha=null&cod=18505138

我使用的是Delphi XE7。

我尝试使用IXMLHttpRequest , WinInet ( InternetOpenURL() , InternetReadFile() ), TRestClient/TRestRequest/TRestResponse , TIdHTTP.Get() ,但他们检索到的只是一些乱码,如下所示:

<html><head><meta http-equiv="Pragma" content="no-cache"/>'#$D#$A'<meta http-equiv="Expires" content="-1"/>'#$D#$A'<meta http-equiv="CacheControl" content="no-cache"/>'#$D#$A'<script>'#$D#$A'(function(){p={g:"0119a4477bb90c7a81666ed6496cf13b5aad18374e35ca73f205151217be1217a93610c5877ece5575231e088ff52583c46a8e8807483e7185307ed65e",v:"87696d3d40d846a7c63fa2d10957202e",u:"1",e:"1",d:"1",a:"challenge etc.

看看这段代码:

program htttpget;

{$APPTYPE CONSOLE}
{$R *.res}

uses
SysUtils, HTTPApp, IdHTTP, ActiveX;

var
CoResult: Integer;
HTTP: TIdHTTP;
Query: String;
Buffer: String;
begin
try
CoResult := CoInitializeEx(nil, COINIT_MULTITHREADED);
if not((CoResult = S_OK) or (CoResult = S_FALSE)) then
begin
Writeln('Failed to initialize COM library.');
Exit;
end;
HTTP := TIdHTTP.Create;
Query := 'http://www.mfinante.ro/infocodfiscal.html?captcha=null' +
'&cod=18505138';
Buffer := HTTP.Get(Query);
writeln(Buffer);
HTTP.Destroy;
except
end;
end.

这个页面有什么问题吗?我一生中没有做过很多“获取”功能,但其他网站返回正常响应。有人至少可以向我解释一下为什么这不起作用吗?

还有其他方法获取该网页的内容吗?是否有其他编程语言(Java、脚本等)可以在没有第三方软件的情况下执行此操作(例如使用 Firefox 源代码模拟浏览器,获取页面,而不显示窗口,然后复制内容)。

最佳答案

这很正常,您确实正确检索了内容。浏览器中发生的情况是执行脚本并在客户端构建页面。如果您希望在代码中复制它,那么您将需要执行相同的操作。完全按照浏览器的方式执行脚本。

您在这里真正寻找的是所谓的 headless 浏览器。将其中之一集成到您的程序中。然后让 headless 浏览器处理请求,包括执行脚本。当执行完脚本后,读取页面修改后的内容。

关于delphi - 用DELPHI获取网页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com