php实战开发网络爬虫,实现采集功能

php实现实时获取当天天气小工具

//获取天气预报网站的网页内容

$html = file_get_contents("http://www.weather.com.cn/weather1d/101210101.shtml");

//正则表达式

$reg = '#hour3data.+?\[".+?,.+?,(?.+?),(?.+?),#';

//如果匹配成功,就输出温度相关的信息

if(preg_match($reg, $html, $mat)){

    echo "今天".$mat['tianqi'].",温度".$mat['wendu'];

}

从起点网采集指定的小说章节保存到txt文件

$url = "http://read.qidian.com/chapter/e3dzHPdshCDbhZU9AFSCzA2/JRRO4JeEqtFp4rPq4Fd4KQ2";

$html = file_get_contents($url);

$reg = '#(?<title>.+?)[\s\S]+?

(?[\s\S]*?)
#';

if(preg_match($reg, $html, $mat)){

    //print_r($mat);

    $mat['content'] = preg_replace("#<.*?>#","\r\n",$mat['content']);

    echo $mat['title']."\n\n\n\n".$mat['content'];

    file_put_contents($mat['title'].".txt",$mat['content']);

}

根据qq号获取昵称和头像

要求:根据qq账号,在网页中显示出对应的昵称和用户头像。

提示:通过这个地址可以获取到相关信息 http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=841116165

提示:此处显示图片有小坑。搜索关键词 “防盗链”

$url = "http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=841116165";

$html = file_get_contents($url);

$reg = '#.+?\["(.+?)",.+?,.+?,.+?,.+?,.+?,"(.+?)"#';

if(preg_match($reg, $html, $mat)){

    //由于防盗链,无法直接使用腾讯的头像链接,所以要先下载到本地

    file_put_contents("1.jpg",file_get_contents($mat[1]));

    echo "".$mat[2];

}

根据ip获取地址信息(作业)

用户输入一个ip地址,显示这个ip的地理位置信息。

提示:通过后面的地址即可获取到地址信息 http://ip.chinaz.com/36.24.128.67

答案:

$ip = "36.84.128.67";

$html = file_get_contents("http://ip.chinaz.com/".$ip);

$regex = '#

[\s\S]+?(.+?)[\s\S]+?

#';

if(preg_match($regex, $html, $mat)){

    echo $mat[1];

}

php获取最近7天天气预报信息(作业)

从起点采集一本指定的小说所有的章节内容,合并到一个txt文件。(作业)

提示:先采集列表的url,再循环采集每个章节的内容,追加到文件中。

//ini_set('max_execution_time','0');

$html = file_get_contents("http://book.qidian.com/info/1004608738");

$regex = '#

  • (.+?)[\s\S]+?
  • #';

    if(preg_match_all($regex, $html, $mats)){

        foreach($mats[1] as $k => $v){

            $html1 = file_get_contents("http:".$v);

            $regex1 = '#

    ([\s\S]+?)
    #';

            //匹配内容

            if(preg_match($regex1, $html1, $mat)){

                $mat[1] = preg_replace('#<.+?>|\s+?#', "",$mat[1]);

                $content = "\r\n".$mats[2][$k]."\r\n".$mat[1];

                file_put_contents("1.txt", $content, FILE_APPEND);

            } else {

                echo "内容没有匹配成功";

            }

            echo $mats[2][$k]."\n";

        }

    }

    你可能感兴趣的:(php实战开发网络爬虫,实现采集功能)