美文网首页php基础教程
php实战开发网络爬虫,实现采集功能

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

作者: 寻梦xunm | 来源:发表于2017-10-03 17:58 被阅读40次

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

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

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

    //正则表达式

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

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

    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>(?<title>.+?)</title>[\s\S]+?<div class="read-content j_readContent">(?<content>[\s\S]*?)</div>#';

    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 "<img src='./1.jpg' />".$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 = '#<p class="WhwtdWrap bor-b1s col-gray03">[\s\S]+?<span class="Whwtdhalf w50-0">(.+?)</span>[\s\S]+?</p>#';

    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 = '#<li data-rid="\d+?"><a href="(.+?)"[\s\S]+?>(.+?)</a>[\s\S]+?</li>#';

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

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

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

            $regex1 = '#<div class="read-content j_readContent">([\s\S]+?)</div>#';

            //匹配内容

            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实战开发网络爬虫,实现采集功能

        本文链接:https://www.haomeiwen.com/subject/brefyxtx.html