$url="http://www.jouroilcrops.cn/qikan/Cpaper/zhaiyao.asp?bsid=14862";
 $fp=fopen($url,"r");
 $content=file_get_contents($url);
// <div align="left" class="mag_title1">姓名&nbsp;<a href="mailto:[email protected]">[email protected]</a><br>preg_match_all('/<a href="mailto:([^<br>]+)/',$content,$rs);
print_r($rs);我用这个,能匹配出邮箱,但姓名一直匹配不出来
另外 ,url中后面的数字是14000-15000的,怎么一次能匹配出这一千个邮箱和姓名

解决方案 »

  1.   


    //未经测试,contents是你要搜索的文本
    $contents='.........................';preg_match_all('/mailto:([a-z0-9\.-_@]+)[\'"]>([^<\/a>]*)<\/a>/i',$contents,$matches);var_dump($matches[1]);//地址
    var_dump($matches[2]);//姓名
      

  2.   

    一次匹配1000个不现实,分布在1001个页面
    动态页面抓取还是挺容易的。供参考
    preg_match_all('#<div\s*[^>]*?>(.*?)<a\s*[^>]*?>(.*?)</a>#i', $str, $m);
    unset($m[0]);
    print_r($m);
      

  3.   

    楼上的高手再问一下,http://www.jouroilcrops.cn/cn/dqml.asp,这个页面中的摘要链接怎么匹配。
      

  4.   

    仅匹配参数bsid值出来,,够用吗preg_match_all('#zhaiyao\.asp\?bsid=(\d+)#', $str, $m);
    $res = array_unique($m[1]);
    print_r($res);
      

  5.   

    只要这个值就可以,amani11 非常感谢你,看完其他朋友的方法后马上 给你结分。