我有一张手机图片,想确定其型号和名称。到目前为止我所做的:
使用 Delphi,我通过 Google Lens 进行了反向图像搜索:
https://lens.google.com/uploadbyurl?url=https://dz.foorshop.com/wp-content/uploads/2022/05/Samsung-M32-White-2.jpg
如果您打开最后一个链接,您会发现一些匹配项,我的目标是获取“相关搜索”后面的文本,该文本可识别确切的手机型号和名称。
下一个代码对于第一个图像示例效果很好:
var
LHTTPClient: TNetHTTPClient;
LResponse: IHTTPResponse;
output: string;
p1, p2: Integer;
begin
LHTTPClient := TNetHTTPClient.Create(nil);
try
LHTTPClient.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36';
LHTTPClient.AcceptLanguage := 'en-US,en;q=0.5';
LHTTPClient.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
LResponse := LHTTPClient.Get('https://lens.google.com/uploadbyurl?url=https://dz.foorshop.com/wp-content/uploads/2022/05/Samsung-M32-White-2.jpg');
SetLength(Output, LResponse.ContentLength);
Output := LResponse.ContentAsString();
// FINIDING A SIGNATURE TO RETREIVE RELATED SEARCH TEXT
p1 := Pos('",["https://t2.gstatic.com/images?q', Output);
p2 := p1;
while p2 > 0 do
begin
Dec(p2);
if Output[p2] = '"' then
begin
Result := Copy(Output, p2+1, p1 - p2-1);
ShowMessage(Result);
Break;
end;
end;
finally
LHTTPClient.Free;
end;
end;
但是当我更改图像并尝试搜索时,找不到该签名。所以我不知道名字!
https://lens.google.com/uploadbyurl?url=https://fdn2.gsmarena.com/vv/bigpic/samsung-galaxy-m32-5g-new.jpg
我知道还有其他类型的搜索,例如使用 HTML 解析器,但测试了很多,但都未能找到该文本!
如有任何帮助,我们将不胜感激。
我相信“相关搜索”文本是通过 Javascript 生成的,因此不能仅通过从链接中获取 HTML 来获取。您需要使用呈现 Javascript 的 Web 引擎,然后抓取该输出。