通过php从外部网站获取内容的最佳方式是什么?
使用php如何打开网页(例如:http://store.domain.com/1/)并扫描其中的数据(即字母C和E)。我应该使用什么php方法?
<span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span>
<span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span>然后将"C“(找到的字符串)保存到$pname
$_session['pname1'] = $pname1;
$_session['pname2'] = $pname2;发布于 2011-11-04 12:52:54
最有效的方法是:
$content = file_get_contents('http://www.domain.com/whatever.html');
$pos = str_pos($content,'id="c');
$on=0;
while($pos!==false)
{
$content = substr($content,$pos+4);
$pos = str_pos($content,'"');
$list[$on] = substr($content,0,$pos);
$on++;
$pos = str_pos($content,'id="c');
}然后,所有的值都将在计数为$on的$list数组中。
你也可以用一个preg函数在一行中完成,但我喜欢老式的方法,它快了一纳秒。
发布于 2011-11-04 12:43:37
你需要使用网页抓取技术。只需使用HTML DOM Library或使用Node.js和jQuery等技术即可完成。您可以找到有关此here和here.的一些有用的教程
您可能还会看到有关使用PHP实现抓取的thread
发布于 2011-11-04 12:36:39
我认为你实际上可以使用file_get_contents("http://store.domain.com/1/");来做一个http请求。
至于解析它,取决于您的项目有多大以及您愿意付出多大的努力,您可以找到像这里的http://simplehtmldom.sourceforge.net/这样的html DOM解析器,或者简单地搜索id="ctl00_ContentPlaceHolder1_phstats1_pname"并将其一块一块地分解(不是推荐的处理方式)。
https://stackoverflow.com/questions/8004878
复制相似问题