php 怎样 采集到 阿里巴巴的商品信息
发布网友
发布时间:2022-04-26 16:57
我来回答
共2个回答
热心网友
时间:2023-10-15 16:22
<?php
class alibaba_analyse{
var $code ;
var $price;
var $info;
//你的错误位置, 构造函数是 __construct , 而不是 __constructs
public function __construct($keywords)
{
//http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=页面是GBK编码,所以需要先转成GBK,在进行URL编码.
$u = "http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=".urlencode(iconv('UTF-8', 'GB2312', $keywords));
$this->code = file_get_contents($u);
}
public function get_price()
{
/*
价格 是在 <span class="sw-ui-font-priceIcon">450<span class="smallSize">.00</span><span class="priceUnit"></span></span>这样的字段中.
而不是在 <div class="price f12 c-e1">.*([\d\.]+?).*<\/div>中
preg_match_all('/<div class="price f12 c-e1">.*([\d\.]+?).*<\/div>/sU',$this->code,$price);
*/
preg_match_all('/<span class="sw-ui-font-priceIcon">(\d+)(?:<span class="smallSize">)([\.\d]{3})?<\/span>/sU',$this->code,$price , PREG_SET_ORDER);
/*
得到的数据格式 , 所以需要使用 array_map 整理价格
Array
(
[0] => Array
(
[0] => <span class="sw-ui-font-priceIcon">570<span class="smallSize">.00</span>
[1] => 570
[2] => .00
)
....
)
*/
$this->price = array_map(create_function('$a' , 'return $a[1].$a[2];') , $price);
}
}
$ali = new alibaba_analyse("联想笔记本");
$ali->get_price();
print_r($ali->price);
代码给出了, 而且经过了测试. 代码中有注解.
你自己拷贝过去试试吧
希望能够采纳!,能当成优质答案就最好啦.!
来自:求助得到的回答
热心网友
时间:2023-10-15 16:22
这类网站一般都不会让别人轻易的采集到它的数据的