Php 从外部网页获取数据
通过php从外部网站获取内容的最佳方式是什么 使用php如何进入网页(例如:)并扫描HTML编码以查找介于两者之间的数据(即字母C和E)。我使用什么php方法Php 从外部网页获取数据,php,Php,通过php从外部网站获取内容的最佳方式是什么 使用php如何进入网页(例如:)并扫描HTML编码以查找介于两者之间的数据(即字母C和E)。我使用什么php方法 <span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span> <span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span> 我认为你实际上可以使用文件获取内容(“http
<span id="ctl00_ContentPlaceHolder1_phstats1_pname">C</span>
<span id="ctl00_ContentPlaceHolder1_phstats2_pname">E</span>
我认为你实际上可以使用
文件获取内容(“http://store.domain.com/1/");
执行http请求
至于解析它,取决于您的项目有多大以及您愿意付出多大的努力,您可以在这里找到一个html DOM解析器,或者只需搜索
id=“ctl00\u contentplaceholder 1\u phstats1\u pname”
并将其逐个分解(这不是推荐的做法).您需要使用网页抓取技术。只需使用HTMLDOM库
或使用Node.js
和jQuery
等技术即可完成。您可以找到一些关于此和的有用教程
您还可以看到,关于使用
PHP
实现刮取,最有效的方法是:
$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');
}
然后,您的所有值都将位于$list数组中,其计数为$on
你也可以用其中一个preg函数在一行中完成它,但我喜欢老式的方法,它快一纳秒。可以通过CURL完成。但是您可以只在项目中包含简单的HTMLDOM解析器。它使用起来非常简单,可以满足您的需要
文件在这里 这叫做屏幕抓取,以前在这个网站上被问过/回答过很多次:应该是$pos=str_pos($content')?最好的方法是单独进行,而不是将所有数据分组到一个列表数组中。不,应该按原样进行,否则只能得到一个结果。最好将它们放入一个数组中,然后使用for($run=0;$run)单独处理它们
$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');
}