Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 如何通过程序访问网站上的信息?_Language Agnostic - Fatal编程技术网

Language agnostic 如何通过程序访问网站上的信息?

Language agnostic 如何通过程序访问网站上的信息?,language-agnostic,Language Agnostic,假设我想写一个程序来读取IMDb中的电影信息,或者last.fm中的音乐信息,或者weather.com中的天气信息等等,只需读取网页并对其进行解析是非常乏味的。通常网站都有一个xml提要,比如last.fm,专门为此设置 网站是否遵循此提要的特定链接/标准?例如robot.txt,是否有类似的信息源标准,或者每个网站都有自己的标准?网站提供不同的方式来访问这些数据。与web服务、提要、端点一样,用于查询其数据 还有一些程序可以在不使用标准技术的情况下从页面收集数据。这些程序称为机器人程序。这些

假设我想写一个程序来读取IMDb中的电影信息,或者last.fm中的音乐信息,或者weather.com中的天气信息等等,只需读取网页并对其进行解析是非常乏味的。通常网站都有一个xml提要,比如last.fm,专门为此设置


网站是否遵循此提要的特定链接/标准?例如robot.txt,是否有类似的信息源标准,或者每个网站都有自己的标准?

网站提供不同的方式来访问这些数据。与web服务、提要、端点一样,用于查询其数据


还有一些程序可以在不使用标准技术的情况下从页面收集数据。这些程序称为机器人程序。这些程序使用不同的技术从网站获取数据注意:小心数据可能受版权保护

最常见的此类标准是和相关的。这两种格式都是web内容的XML联合格式。大多数软件库都包含用于解析这些格式的组件,因为它们非常普遍。

是。而且。

这正是Atom提要设计的目的所在,因此,如果有RSS提要,请查找其链接。它们都被设计为易于解析。这通常发生在定期更新内容的网站上,比如新闻或博客。如果你幸运的话,他们会像Stackoverflow处理问题一样,为网站的不同方面提供许多不同的RSS提要


否则,该网站可能会有一个API,你可以使用它来获取Facebook、Twitter、谷歌服务等数据。如果没有,你将不得不求助于屏幕抓取,以及可能涉及的版权和法律问题。

我觉得你指的是RSS或Atom提要。这些是为源中的给定页面指定的;例如,打开这个页面的源html并转到第22行

Atom和RSS都是标准。它们都是基于XML的,并且每个都有许多解析器


您提到屏幕抓取是一个乏味的选项;这通常也违反了网站的服务条款。这样做可能会使你受阻。根据定义,订阅源阅读是允许的。

根据网站正在做的事情和想要做的事情,有许多标准网站用于此

RSS是一种以机器可解析形式发送格式化数据块的协议。它代表真正的简单联合,通常用于新闻提要、博客和其他定期或零星出现新内容的内容。有几十个RSS阅读器,可以订阅多个RSS源并定期检查它们是否有新数据。它的目的是轻量级的

AJAX是一种协议,用于将命令从网站发送到web服务器,并以机器可解析的形式返回结果。它设计用于在web客户端上使用JavaScript。AJAX标准规定了如何格式化和发送请求,如何格式化和发送回复,以及如何解析请求和回复。开发人员往往需要知道通过AJAX可以使用哪些命令

SOAP是与AJAX类似的另一种协议,但它的用途更多地是程序对程序,而不是从web客户端到服务器。SOAP允许通过使用WSTL格式的机器可读文件自动发现可用的命令,WSTL格式基本上在XML中指定特定SOAP接口使用的方法签名和类型


并非所有网站都使用RSS、AJAX或SOAP。您列出的示例之一Last.fm似乎不支持RSS,而是使用它自己的基于web的API从站点获取信息。在这些情况下,您必须找出他们的API最后是什么。不过,fm似乎有很好的文档记录。

选择获取数据的方法取决于应用程序。如果是公共/商业应用程序,屏幕抓取将不是一个选项。例如,如果您想在商业上使用IMDB信息,则需要根据其网站的使用政策签订合同,向他们支付15000美元或更多

我认为你的问题不是不知道获取网站信息的标准程序,而是不知道你无法获取数据是因为网站不想提供这些数据

如果一个网站希望您能够使用他们的信息,那么几乎肯定会有一个记录良好的api接口,带有各种标准的查询协议

可以找到API列表

此特定站点中列出的数据格式有:CSV、GeoRSS、HTML、JSON、KML、OPML、OpenSearch、PHP、RDF、RSS、文本、XML、XSPF、YAML、CSV、GeoRSS