찾다
php教程php手册PHP抓取网页内容的技巧分享

PHP抓取网页内容的技巧分享

Jun 13, 2016 am 11:09 AM
php콘텐츠공유하다반응할 수 있다어떻게성취하다재능기능기다옳은~의웹페이지

如何才能正确的实现可为什么PHP抓取网页内容后没反应呢?连测试的文字都没有,要是我把echo "测试一下";放到第一行就可以输出,我估计是curl_init()函数还没有运行!

你看看PHP的phpinfo()中有没有CURL扩展支持!

把php_curl.dll拷到c:windows和c:windowssystem32里面 重启apache之后再试试看

不是php_curl.dll这个文件,是把php目录中的libeay32.dll,ssleay32.dll拷到c:windowssystem32里面 重启apache

为了服务器安全着想,所以把allow_url_fopen关掉了。

当服务器allow_url_fopen = Off 时,就不能用file_get_contents,只有设置ON时可以用。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?php /*  </span></span></span></li>
<li>
<span>$</span><span class="attribute">getstr</span><span>=</span><span class="attribute-value">file_get_contents</span><span>("http://www.<br>163.com/weatherxml/54511.xml");  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">qx</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">qx</span><span>="));  </span>
</li>
<li>
<span>$</span><span class="attribute">wd</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">wd</span><span>="));  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">qximg</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">qximg</span><span>="));  </span>
</li>
<li>
<span>$</span><span class="attribute">qximg_</span><span>=</span><span class="attribute-value">explode</span><span>(",",$qximg[1]);  </span>
</li>
<li class="alt"><span>echo "北京 ".$qx[1]."";  </span></li>
<li><span>echo $wd[1];*/  </span></li>
<li class="alt">
<span>//echo "</span><span class="tag"><span> </span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">'http://news.<br>163.com/img/logo/".$qximg_[0]."'</span><span class="tag">><br></span><span class="tag"><span> </span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">'http://news.163.com<br>/img/logo/".$qximg_[1]."'</span><span class="tag">></span><span>";  </span></span></span>
</li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

以下PHP抓取网页内容的范例是通curl_init函数来获取163天气预报

把php.ini里( ;extension=php_curl.dll ) 前面的(;)去掉保存

把php_curl.dll,libeay32.dll,ssleay32.dll拷到c:windowssystem32里,重启IIS即可,没有装apache

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?php  </span></span></span></li>
<li><span>//初始化curl  </span></li>
<li class="alt">
<span>$</span><span class="attribute">ch</span><span> = </span><span class="attribute-value">curl_init</span><span>() or die (curl_error());  </span>
</li>
<li><span>//设置URL参数  </span></li>
<li class="alt"><span>curl_setopt($ch,CURLOPT_URL,"http:<br>//www.163.com/weatherxml/54511.xml");  </span></li>
<li><span>//要求CURL返回数据  </span></li>
<li class="alt"><span>curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  </span></li>
<li><span>//执行请求  </span></li>
<li class="alt">
<span>$</span><span class="attribute">result</span><span> = </span><span class="attribute-value">curl_exec</span><span>($ch) or die (curl_error());  </span>
</li>
<li><span>//取得返回的结果,并显示  </span></li>
<li class="alt"><span>//echo $result;  </span></li>
<li><span>// echo curl_error($ch);  </span></li>
<li class="alt">
<span>$</span><span class="attribute">qx</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">qx</span><span>="));  </span>
</li>
<li>
<span>$</span><span class="attribute">wd</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">wd</span><span>="));  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">qximg</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">qximg</span><span>="));  </span>
</li>
<li>
<span>$</span><span class="attribute">qximg_</span><span>=</span><span class="attribute-value">explode</span><span>(",",$qximg[1]);  </span>
</li>
<li class="alt">
<span>echo "北京 ".$qx[1]."</span><span class="tag"><span> </span><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>";  </span></span>
</li>
<li><span>echo $wd[1];  </span></li>
<li class="alt"><span>//关闭CURL  </span></li>
<li><span>curl_close($ch);  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

通过以上对PHP抓取网页内容的学习,大家可以自行实际操作一遍,加深对它的理解。


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.