你知道 Delphi 的网页抓取库吗?喜欢 Beautiful Soup 或 Scrapy for Python 吗?
问问题
5340 次
2 回答
11
好吧,这不是针对 Delphi,而是针对 FreePascal,因为我没有最近的 Delphi 版本,但是它们之间的移植应该不是那么困难。
无论如何,我的Internet 工具可能是目前最好的 Pascal 网络抓取库。
例如,您可以打印页面上的所有链接:
uses simpleinternet, xquery;
var a: IXQValue;
begin
for a in process('http://stackoverflow.com', '//a/@href') do
writeln(a.toString);
end.
它们独立于平台;完全支持 XPath 2、XQuery、CSS 3 选择器(这些选择器没有经过很好的测试,无论如何 XPath 更好)和模式匹配;解析xml和html;并通过http和https下载。
于 2013-02-04T19:05:05.717 回答
1
使用 TWebBrowser 组件加载页面后,查询 IHTMLDocument2 接口的 TWebBrowser.Document 属性,然后您可以枚举元素。
您可以 getElementsById、getElementsByTagName、getElementsByName,例如:
var
Elem: IHTMLElement;
begin
Elem := GetElementById(WebBrowser1.Document, 'myid') as IHTMLElement;
end;
或获取所有 HTML 文本并使用您想要的任何方式,例如:
sourceHTML := WebBrowser.Document as IHTMLDocument2;
sourceHTML.body.innerHTML;
于 2019-01-23T19:04:56.807 回答