除了使用API​​之外,还有其他可能的方法从外部网页获取数据以开发比较购物网站吗?

时间:2013-04-28 21:06:15

标签: javascript php jquery database

如果我的问题不合适,我真的很抱歉,除了使用API​​之外,我找不到任何其他简单的方法从外部网站收集数据。我觉得我错过了一些事情,但我不确定是什么,我确实搜索了可以检索数据但我无法理解的方法。我正在使用php和javascript,我正在寻找更简单的方法从外部网站获取数据到我的网站。如果你能解释一下如何从外部资源中检索数据,我真的很感激。

3 个答案:

答案 0 :(得分:2)

当然有一种方法,但它风险更大,因为它高度依赖于页面的HTML格式(即,如果网站的布局发生变化,它将不再起作用)。感谢CURL加载你想要检索信息的页面并解析HTML结果(在PHP中搜索HTML解析器)。

你必须告诉你的脚本它应该在哪个HTML标签中找到信息。

答案 1 :(得分:2)

在我看来,这是一个非常大的领域。我一直做很多涉及“刮”到一定程度的爱好项目。有许多技巧,每当你处理一个新网站时,你必须运用你的创造力。

我认为没有一本指南适用于所有人。

有两个主要的事情:网站使用AJAX异步加载内容,或者网站以HTML格式开头提供内容。

如果是第二种情况,使用curlregular expressions

非常容易获取HTML和解析

如果是第一种情况,您可以选择,但我认为您可以检查Chrome中的网络呼叫,以查看实际数据的下载位置。例如,它可能是一种非常幸运的JSON格式,或者是您必须进行逆向工程的自定义格式。

我能理解为什么很难习惯这种“编程”,因为你无法控制实际的标记,你必须依赖很多东西。您应该以最大化脚本容错的方式选择您的假设。

很抱歉,如果您正在寻找有关如何从静态内容中提取数据的真实基础教程,但这是您可能遇到的一般解释。

我建议你找一个不通过AJAX加载内容的网站,并且有一个相对不错的HTML标记。然后使用curl和regexps刮掉它,然后从那里爬上去收集路上的技巧。

注意:你可以选择某种DOM分析器或者它们被调用的任何东西,并使用它而不是正则表达式,但我不认为它们对于初学者来说是非常必要的。

答案 2 :(得分:1)

首先,您可以使用curl从其他网站获取html。点击http://php.net/manual/en/book.curl.php

同时退房,http://sourceforge.net/projects/snoopy/http://cuab.de

您还希望看到此示例http://www.bitrepository.com/how-to-create-a-simple-web-data-extractor.html

那里有很多图书馆。基本上你将网页作为一个大的STRING获取然后你开始通过使用字符串操作技术解析来寻找图像或网址等线索

以下是从网站http://www.geekality.net/2011/05/12/php-how-to-get-all-images-from-an-html-page/获取图片的示例。

另外考虑到某些网站由于安全原因不允许卷曲。他们不希望你偷工作。您从网站上获取内容的时间也受到限制,而网络服务器可以阻止您的IP,因为您希望从一个网址到另一个网址像疯了一样。

这是googles主题,一个黑客主题,一般来说是一个非常大规模的科学主题,关于如何抓取这个名为Internet的巨大图表。

玩得开心,小心。