+ -
当前位置:首页 → 问答吧 → 淘宝商品价格比较的类

淘宝商品价格比较的类

时间:2007-10-21

来源:互联网

淘宝可以通过 http://search1.taobao.com/browse/search_auction.htm?q=** 来搜索产品,打算通过制定关键字,来搜索和自己相关产品,关注同行价格。不知道目前有没有这样的程序实现。因为本人既非专业程序开发,也非专业web开发人员。水平有限,在VB.net 与php之间权衡了下决定还是选用PHP. 主要技术手段很简单了:就是web抓取分析页面了。
实现主要功能:
1.指定关键字获取40条价格信息,卖家信息
2.根据制定价格范围来剔除一些和产品不符的价格信息。
3.每天获取一次价格保留在数据库中。
4.生成历史价格图标。
5.依据自己设定好规则生成自己店铺的指导价格。
如果有人感兴趣的话可以联系我:QQ:153080931 大家相互研究了。我想如果做出来应该对广大淘宝店主有用了。
复制PHP内容到剪贴板
PHP代码:
class taobao_analyse{

var $code ;
var $price;
var $place;
var $seller;
var $seller_url;
var $product;
var $product_url;
var $info;
  
public function __construct($keywords){
  //获取分析页面的源代码,注意keywords转换为url编码
  $this->code = file_get_contents("[url=http://search1.taobao.com/browse/search_auction.htm?q=]http://search1.taobao.com/browse/search_auction.htm?q=".urlencode($keywords[/url]));
   }

public function  get_price(){
preg_match_all("/<span>([0-9]{1,5}\.[0-9]{2})<\/span>/i",$this->code,$price);
$this->price = $price[1];
  
}
   
public  function get_place(){
  preg_match_all("/<div class=\"Place\">([\S ]*)<\/div>/i",$this->code,$place);
  $this->place= $place[1];  //获取商家所在地
}

public function get_product(){
   preg_match_all("/<a [\S ]* class=\"EventCanSelect\">([\S ]*)<\/a>/i",$this->code,$product);
   $this->product=$product[1]; //获取产品信息
   $this->product_url=$product[0]; //获取产品信息的地址
}
  public function get_seller(){
   preg_match_all("/<a href=\"http:\/\/store\.taobao\.com\/shop\/view_shop\.htm\?user_id=[\S]*\" target=\"_blank\">([\S ]*)<\/a>/i",$this->code,$seller);
   $this->seller=$seller[1]; //获取产品信息
   $this->seller_url=$seller[0]; //获取产品信息的地址
}

public function get_info(){
  $this->get_place();
  $this->get_price();
  $this->get_product();
  $this->get_seller();
  for ($i=0;$i<count($this->seller);$i++){
$this->info['seller'][]=$this->seller[$i];
$this->info['seller_url'][]=$this->seller_url[$i];
$this->info['product'][]=$this->product[$i];
$this->info['product_url'][]=$this->product_url[$i];
$this->info['place'][]=$this->place[$i];
$this->info['price'][]=$this->price[$i];
}
}
}
$taobao =new taobao_analyse("三星 2232GW+");
$taobao->get_info();
print_r($taobao->info);

做成类了。info存储所有信息。目前在此基础上完善功能

[ 本帖最后由 morsth 于 2007-10-22 16:37 编辑 ]

作者: morsth   发布时间: 2007-10-20

自己站一楼了。
发现做起来没有想的这么复杂
抓取价格正则
复制PHP内容到剪贴板
PHP代码:
<span>([0-9]{1,5}.[0-9]{2})</span>

抓取卖家所在地
复制PHP内容到剪贴板
PHP代码:
<div class="Place\">([\S ]*)<\/div>

获取卖家
复制PHP内容到剪贴板
PHP代码:
<a [S ]* class="EventCanSelect\">([\S ]*)<\/a>

[ 本帖最后由 morsth 于 2007-10-21 20:13 编辑 ]

作者: morsth   发布时间: 2007-10-21

<div class="Price">一口价<br />
   <span>15.00</span><br /><em>
     </em>
只要匹配这些就行了!

楼主果然厉害那个链接你是怎么找出来的??

[ 本帖最后由 zhaofei299 于 2007-10-21 21:07 编辑 ]

作者: zhaofei299   发布时间: 2007-10-21

对啊,最开始我以为淘宝没有这样一个连接就能提交搜索的,开始想要php模拟提交数据然后接受结果,现在发现没有这么复杂。

作者: morsth   发布时间: 2007-10-22

说说怎么找到这个链接的,还有就是搜索 商品分布它的链接你知道不?

作者: zhaofei299   发布时间: 2007-10-22

我的做法是 查看搜索框form的代码,如果是get 就查看有哪些元素要get过去,如果是post就模拟post过去

作者: morsth   发布时间: 2007-10-22

作者: softly   发布时间: 2007-10-23

本来想通过店铺的url再去抓取卖家的信誉,发现程序就太慢了,40个卖家要访问40个页面,效率很低了。所以放弃了。对价格进行了优化,分段统计加入。不过发现淘宝搜索结果不准确带了些问题,比如说,我要三星 2232gw+ 搜到的大部分都是不带+的,所以价格就不是很有参考了。

作者: morsth   发布时间: 2007-10-23

对于淘宝用户的话~~~还是TAOBAO的高级搜索吧~

作者: yufenglx   发布时间: 2007-10-30

程序的目的在于解决 商家定价的参考问题,对买家没有什么意义。

作者: morsth   发布时间: 2007-10-31

程序的目的在于解决 商家定价的参考问题,对买家没有什么意义。

作者: morsth   发布时间: 2007-10-31

楼主,你如何学的正则,

作者: netboys   发布时间: 2007-11-01