php禁止网页抓取(用浏览器打开没有问题.(函数获取内容) )

优采云 发布时间: 2022-02-20 02:03

  php禁止网页抓取(用浏览器打开没有问题.(函数获取内容)

)

  由 admin 于 2019 年 8 月 7 日发布

  使用 curl 单独获取有效,但是如果获取相同类型的系列 网站会失败,请将它们放入数组中

  $linkList,分别以此类推。

  

  

1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />function getJobsHubuNotice()<br />

<br />

{<br />

            <br />

    $curl = curl_init('http://jobs.hubu.edu.cn/List.aspx?ArticleChannelId=81');<br />

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);<br />

    $result = curl_exec($curl);<br />

            //内容处理<br />

    $result = strip_tags($result,'&lt;a&gt;');<br />

    $result = stristr($result, 'nbsp当前位置:');<br />

    $result = str_replace('nbsp当前位置:', '', $result);<br />

    $result = stristr($result, '当前1/2页',true);<br />

    $result = stristr($result, '通知公告');<br />

    $result = str_replace('通知公告&lt;/a&gt;', '', $result);<br />

    preg_match_all('/(?&lt;=href=").*?(?=")/', $result, $arrayTemp);<br />

    $linkList = $arrayTemp[0];<br />

    preg_match_all('/(?&lt;=title=").*?(?=")/', $result, $arrayTemp);<br />

    $titleList = $arrayTemp[0];<br />

    preg_match_all('/(?&lt;=\[)\d*\-\d*(?=\])/', $result, $arrayTemp);<br />

    $dateList_temp = $arrayTemp[0];<br />

    $dateList = array();<br />

    $linkList = str_replace('Detail.aspx', 'http://jobs.hubu.edu.cn/Detail.aspx', $linkList);<br />

    foreach ($dateList_temp as $key =&gt; $value) {<br />

        $dateList[$key] = date('Y').'-'.$value;<br />

    }<br />

    $JobsHubu = array();<br />

            //分别获得网页上的每条通知的标题,链接,时间<br />

    $JobsHubu[0] = $dateList;<br />

    $JobsHubu[1] = $titleList;<br />

    $JobsHubu[2] = $linkList;<br />

    return $JobsHubu;<br />

}<br />

//<br />

function makePage($link)<br />

{<br />

<br />

        .......   //省略部分代码<br />

       else if(starts($link,'jobs.hubu'))<br />

      {<br />

        echo "进入makePage函数";<br />

        echo "处理网页".$link.'&lt;br/&gt;';<br />

        $curl = curl_init();<br />

        curl_setopt($curl, CURLOPT_URL , $link);<br />

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);<br />

        $result = curl_exec($curl);<br />

        //echo $result;<br />

        //echo "result结束";<br />

        $result = strip_tags($result);<br />

        $result = stristr($result, '&amp;nbsp;&gt;&amp;nbsp;通知公告');<br />

        $result = str_replace('&amp;nbsp;&gt;&amp;nbsp;通知公告', '', $result);<br />

        $result = stristr($result, '$(document).ready',true);<br />

        $result = trim($result);<br />

        $result = str_replace("\r\n", '&lt;br/&gt;', $result);<br />

        $result = preg_replace('/(\&lt;br\/\&gt;){1,}/', '&lt;br/&gt;', $result);<br />

        echo $result;<br />

        echo '&lt;br/&gt;&lt;br/&gt;';<br />

        echo "退出makePage函数";<br />

        return $result;<br />

       }<br />

}

  先使用getJobsHubuNotice()函数获取新闻的链接、标题、日期,再使用makePage()函数获取内容

  

  这是在makePage里面打印链接的结果,用浏览器打开链接没有问题。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线