> php教程 > php手册 > php curl 通过淘宝链接抓取商品评论

php curl 通过淘宝链接抓取商品评论

WBOY
풀어 주다: 2016-06-06 20:12:51
원래의
1279명이 탐색했습니다.

需求:通过淘宝或天猫商品链接,获取商品的评论。有疑问请直接留言。详细代码见:https://github.com/wangyupeng/code/blob/master/get_comment_list.php header("Content-type: text/html; charset=utf-8");function get_taobao_item_id($url){ // 解析url

需求:通过淘宝或天猫商品链接,获取商品的评论。 有疑问请直接留言。 详细代码见:https://github.com/wangyupeng/code/blob/master/get_comment_list.php
header("Content-type: text/html; charset=utf-8");
function get_taobao_item_id($url){
    // 解析url
    $urls=parse_url( $url );
    // 提取url,得到商品id
    // 一淘商品
    if ((strpos(@$urls['host'], 'etao.com') > 0) && (strpos(@$urls['host'], 'detail.etao.com')==0)) {
        $url_array = explode('.',$urls['path']);
        $id = ltrim($url_array[0],'/');
    // 淘宝商品
    } else if ((strpos(@$urls['host'], 'taobao.com') > 0) && (strpos(@$urls['host'], 'item.taobao.com')==0)) {
        parse_str($urls['query'],$url_array);
        $id = @$url_array['id'] ? $url_array['id'] : "" ;
    // 天猫商品
    } else if ((strpos(@$urls['host'], 'tmall.com') > 0 ) && (strpos(@$urls['host'], 'detail.tmall.com')==0)) {
        parse_str($urls['query'],$url_array);
        $id = @$url_array['id'] ? $url_array['id'] : "" ;
    // 非法商品
    }else{
        return false;
    }
    return $id;
}
/**
 * 下载淘宝页面
 * @param url $url
 * @return string
 */
function download_page($url) {
    // 创建一个新cURL资源
    $ch = curl_init();
    // 设置URL和相应的选项
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.taobao.com/");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    // 抓取URL并把它传递给浏览器
    $output = curl_exec($ch);
    // 关闭cURL资源,并且释放系统资源
    curl_close($ch);
    return $output;
}
/**
 * 获取淘宝评论URL
 * @param unknown $id
 * @return string
 */
function get_taobao_comment_url($id){
    $pages = download_page('http://item.taobao.com/item.htm?id='.$id);
    preg_match_all('/data-listApi="(.*)"/Usi', $pages, $commont);//评论列表地址
    $comment_list_url = $commont[1][0].'&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1&attribute=&callback=?';
    return $comment_list_url;
}
/**
 * 获取天猫评论URL
 * @param unknown $id
 * @return string
 */
function get_tmall_comment_url($id){
    $comment_list_url = 'http://rate.tmall.com/list_detail_rate.htm?itemId='.$id.'&spuId=&currentPage=1&sellerId=&order=0&forShop=1&callback=?';
    return $comment_list_url;
}
/**
 * 根据商品URL获取评论
 * @param string $url 淘宝或天猫商品链接地址
 * @param int $maxPage 采集最大页数,设置为NULL则获取全部评论
 * @return multitype:multitype:NULL unknown  multitype:unknown
 */
function get_comment_list($url, $maxPage=5) {
    // 数据集
    $data = array();
    // 评论总页数,初始共一页,程序自动获取
    $lastPage = 1;
    if (strpos($url, 'tmall.com') === false) {
        // 淘宝
        $id = get_taobao_item_id($url);
        $url = get_taobao_comment_url($id);
        for ($i=1; $i= $maxPage)) {
                break;
            }
        }
    } else {
        // 天猫
        $id = get_taobao_item_id($url);
        $url = get_tmall_comment_url($id);
        for ($i=1; $i= $maxPage)) {
                break;
            }
        }
    }
    return $data;
}
// 获取淘宝评论测试
$url = 'http://item.taobao.com/item.htm?id=14150972514';
$data = get_comment_list($url);
var_dump($data);
// 获取天猫评论测试
$url = 'http://detail.tmall.com/item.htm?id=39969082707';
$data = get_comment_list($url);
var_dump($data);
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿