zoukankan      html  css  js  c++  java
  • 采集天猫搜索页商品的商品ID和商品店铺名称,正则表达式的写法

    用正则匹配采集天猫搜索页的商品ID和商品的店铺名称;

    正则匹配的贪婪问题

    之前我一直想解决如何实现.[^(</a>)]*这个问题;搞了好久才发现用非贪婪模式可以解决这个问题;即 .*?</a> 这样写即可;

    <?PHP
    //add by wangtongphp QQ:1006440989
    function infinityCollect($url)
        {
            $v = @file_get_contents($url);
            preg_match_all("/data-id="(d{1,})/",$v,$ids);
            preg_match_all("/<a class="productShop-name".[^>]*>([sS]*?)</a>/",$v,$nicks);
            preg_match_all("/data-id="(d{1,})[sS]*?productShop-name".[^>]*>([sS]*?)</a>/",$v,$out);
            var_dump($out[1]);
            var_dump($out[2]);
            if(count($ids[1]) != count($nicks[1])){
                echo count($ids[1]);
                var_dump($ids[1]);
                echo count($nicks[1]);
                var_dump($nicks);
                echo 'error';exit;
            }
            $result = array('status'=>0,'count'=>0,'max_page'=>0);
            if(!empty($ids[1]))
            {
                foreach($ids[1] as $k=>$goods_id){
                    $goods['goods_id'] = $goods_id;
                    $nick = trim($nicks[1][$k]);
                    $nick = str_replace('<span class=H>','',$nick);
                    $nick = str_replace('</span>','',$nick);
                    $goods['nick'] = $nick;
                    
                var_dump($goods);
                }
            }
            return $result;
        } 
    
    
    infinityCollect('http://list.tmall.com//search_product.htm?q=Joy%A1%AEs&type=p&style=&cat=all');
    
    /*
    $v = @file_get_contents("http://list.tmall.com//search_product.htm?q=Joy%A1%AEs&type=p&style=&cat=all");
    preg_match_all("/<a class="productShop-name".[^>]*>(.[^<]*)</a>/",$v,$nicks);
    var_dump($nicks);
    */

    以上源码可以直接放在文件里面运行;是多种匹配天猫商品搜索页的正则表达式写法

  • 相关阅读:
    用java简单的实现单链表的基本操作
    Pointcut is not well-formed: expecting 'identifier' at character position 0
    Spark 学习(二)
    Spark 学习
    学习Mahout (四)
    github 入门
    Source Insight 入门设置
    shell chpasswd 命令 修改用户密码
    sed 匹配 换行符
    学习Mahout(三)
  • 原文地址:https://www.cnblogs.com/wangtongphp/p/3148007.html
Copyright © 2011-2022 走看看