• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php实现的一个很好用HTML解析器类可用于采集数据_PHP

php 搞代码 3年前 (2022-01-25) 26次浏览 已收录 0个评论

复制代码 代码如下:
<?php
$oldSetting = libxml_use_internal_errors( true );
libxml_clear_errors();
/**
*
* -+———————————–
* |PHP5 Framework – 2011
* |Web Site: http://www.iblue.cc
* |E-mail: [email protected]
* |Date: 2012-10-12
* -+———————————–
*
* @desc HTML解析器
* @author jingke
*/
class XF_HtmlDom
{
private $_xpath = null;
private $_nodePath = ”;

public function __construct($xpath = null, $nodePath = ”)
{
$this->_xpath = $xpath;
$this->_nodePath = $nodePath;
}

public function loadHtml($url)
{
ini_set(‘user_agent’, ‘Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 –Nexus’);
$content = ”;
if(strpos(strtolower($url), ‘http’)===false)
{
$content = file_get_contents($url);
}
else
{
$ch = curl_init();
$user_agent = “Baiduspider+(+http://www.baidu.com/search/spider.htm)”;
$user_agent1=’Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0′;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
$content =curl_exec($ch);
curl_close($ch);
}

$html = new DOMDocument();
$html->loadHtml($content);
$this->_xpath = new DOMXPath( $html );
//return $this;

}

public function find($query, $index = null)
{
if($this->_nodePath == ”)
$this->_nodePath = ‘//’;
else
$this->_nodePath .= ‘/’;

$nodes = $this->_xpath->query($this->_nodePath.$query);
//echo $nodes->item(0)->getNodePath();exit;


if ($index == null && !is_numeric($index))
{
$tmp = array();
foreach ($nodes as $node)
{
$tmp[] = new XF_HtmlDom($this->_xpath, $node->getNodePath());
}
return $tmp;
}
return new XF_HtmlDom($this->_xpath,$this->_xpath->query($this->_nodePath.$query)->item($index)->getNodePath());
}

/**
* 获取内容
*/
public function text()
{

!本文来源gaodai.ma#com搞#代!码(网

搞gaodaima代码
if ($this->_nodePath != ” && $this->_xpath != null )
return $this->_xpath->query($this->_nodePath)->item(0)->textContent;
else
return false;
}

/**
* 获取属性值
*/
public function getAttribute($name)
{
if ($this->_nodePath != ” && $this->_xpath != null )
return $this->_xpath->query($this->_nodePath)->item(0)->getAttribute($name);
else
return false;
}

public function __get($name)
{
if($name == ‘innertext’)
return $this->text();
else
return $this->getAttribute($name);
}
}
$xp = new xf_HtmlDom();
$xp->loadHtml(‘http://www.aizhan.com/siteall/www.opendir.cn/&#8217;);
$rows = $xp->find(“td[@id=’baidu’]/a”, 0)->innertext;
print_r($rows);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php实现的一个很好用HTML解析器类可用于采集数据_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址