使用Delphi中的TWebbrowser组件向网站发送数据和从网站接收数据

时间:2019-05-08 17:55:16

标签: html delphi web twebbrowser

我正在用Delpi 10.3创建VCL应用程序,并希望通过让用户在TEdit组件中输入书籍的ISBN,然后将该值传递/发送到该网站上的搜索字段来支持某些Web功能: https://isbnsearch.org之后,网站将查询ISBN并显示该书的作者。我想以某种方式访问​​搜索结果显示的信息(即作者),然后在我的应用程序中再次使用它。

这是我的GUI,可以更好地了解我要完成的工作:

enter image description here

我可以为此使用什么代码?任何其他可行的建议或方法都是可以接受的。

1 个答案:

答案 0 :(得分:5)

在该网站上执行搜索时,它只会加载带有特定URL查询字符串的页面...

https://isbnsearch.org/search?s=suess

上面的示例是当我搜索“ suess”时,因此您可以轻松地连接搜索URL。

您可以使用任何HTTP组件(例如TIdHTTP)加载此搜索页面,然后使用HTML解析器抓取该页面并阅读所需内容。比尝试通读TWebBrowser容易得多。

enter image description here

最后,您实际上不会显示HTML(如果您愿意的话,您可以显示HTML),但是其想法是读取数据并以您自己的格式显示。

在该特定页面上,首先找到ID为ul的{​​{1}}元素。然后,每个searchresults元素都包含单独的结果。不幸的是,该网站使用分页,每页仅显示10条结果。为此,请使用另一个参数li表示第二页,&p=2表示第三页,依此类推。


另一方面,这是获取此类信息的最差方法。您应该做的是使用适当的API,该API为您提供机器友好的数据。您所引用的服务似乎没有选项,但是下面是其中一个示例:

https://openlibrary.org/dev/docs/api/books-与您正在使用的信息相比,这似乎还为您提供更多信息。