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

ryoqjall  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(231)

我正在使用Delpi 10.3创建一个VCL应用程序,并希望通过让用户将图书的ISBN输入到TEdit组件中,并从那里将此值传递/发送到该网站上的搜索字段来支持某些Web功能:https://isbnsearch.org之后,网站会查找ISBN并显示这本书的作者。我想以某种方式访问搜索结果所呈现的信息(iidoe Author),并在我的应用程序中再次使用它。
这是我的GUI,可以更好地了解我想要完成的任务:

我可以使用什么代码来实现这个目的?任何其他可行的建议或方法都是可以接受的。

nwlqm0z1

nwlqm0z11#

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

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

上面的例子是当我搜索“suess”的时候,所以你可以很容易地串接一个搜索URL。
您可以使用任何HTTP组件(如TIdHTTP)加载此搜索页面,然后使用HTML解析器抓取页面并读取您需要的内容。这比尝试通读TWebBrowser要容易得多。

最后,您实际上不会显示HTML(我的意思是,如果您愿意的话,您可以这样做),但是我们的想法是读取数据并以您自己的格式显示它。
在该页面上,首先找到id为searchresultsul元素。然后,每个li元素包含单独的结果。不幸的是,该网站使用分页,每页只显示10个结果。为此,请再次调用该页面,并为第二页使用另一个参数&p=2,为第三页使用&p=3,依此类推。
另一方面,这是获取这些信息的最糟糕的方式。你应该做的是使用一个合适的API,它可以为你提供机器友好的数据。你所引用的服务似乎没有选项,但这里有一个例子可以:
https://openlibrary.org/dev/docs/api/books-这似乎还为您提供了比您正在使用的更多的信息。

相关问题