【发布时间】:2014-12-20 03:24:01
【问题描述】:
我正在编写一个 php 脚本,它从电子商务网站获取所有产品 URL,现在我只是使用函数 get_file_contents() 并且在使用 preg_match_all() 搜索关键字之后预计项目 url,现在,我的问题是,我可以使用更直接和有效的方式来存储来自网站的所有这些链接并将它们放入我的数据库中吗?
【问题讨论】:
标签: php database indexing e-commerce
我正在编写一个 php 脚本,它从电子商务网站获取所有产品 URL,现在我只是使用函数 get_file_contents() 并且在使用 preg_match_all() 搜索关键字之后预计项目 url,现在,我的问题是,我可以使用更直接和有效的方式来存储来自网站的所有这些链接并将它们放入我的数据库中吗?
【问题讨论】:
标签: php database indexing e-commerce
我最近为我客户的项目创建了一个爬虫系统。基本上这些是我遵循的步骤:
这是我使用的示例解析器代码。我希望它能帮助您完成整个过程:
$content = file_get_contents($url);
libxml_use_internal_errors(true);
$oDom = new DomDocument;
$oDom->validateOnParse = false;
$res = $oDom->loadHTML($content);
libxml_clear_errors();
$oDom->preserveWhiteSpace = false;
$oXpath = new DOMXPath($oDom);
$productNode = $oXpath->query('//div[@class="ulist span4"]');
if($productNode){
$productsList = array();
foreach($productNode as $p){
$this->oProduct = new Products();
$productURL = $oXpath->query('div[@class="ures"]/div[@class="ures-cell"]/a', $p)->item(0);
$this->oProduct->url = $this->base.'/'.$productURL->getAttribute('href');
$this->oProduct->category = $categoryID;
$this->oProduct->productPeek = $peek;
$titleNode = $oXpath->query('div[@class="ubilgialan span12"]/div[@class="span12 uadi"]/a/span', $p)->item(0);
$this->oProduct->title = trim($titleNode->nodeValue);
$priceNode = $oXpath->query('div[@class="ubilgialan span12"]/div[@class="span8 ufytalan"]/div[@class="ufyt"]/span[@class="divdiscountprice"]/span', $p)->item(0);
$this->oProduct->price = trim($priceNode->nodeValue);
$imageNode = $oXpath->query('div[@class="ures"]/div[@class="ures-cell"]/a/img', $p)->item(0);
$this->oProduct->image = $this->base."/".$imageNode->getAttribute('src');
$productsList[] = $this->oProduct;
}
if(count($productsList) > 0){
return $productsList;
}
}
【讨论】: