> 백엔드 개발 > PHP 튜토리얼 > Curl - WeChat 그래픽 페이지 사진을 얻기 위한 PHP의 다양한 방법이 표시되지 않습니다.

Curl - WeChat 그래픽 페이지 사진을 얻기 위한 PHP의 다양한 방법이 표시되지 않습니다.

WBOY
풀어 주다: 2016-08-04 09:21:17
원래의
1869명이 탐색했습니다.

file_get_contents
curl
PHP 단순 HTML DOM 파서
html을 가져오는 세 가지 방법, 이미지가 표시되지 않으며, 컬도 브라우저를 시뮬레이션합니다.

다음 이미지 및 텍스트 페이지 링크는 예시입니다
WeChat 이미지 및 텍스트 페이지

예를 들어 html dom 모드에서 코드를 가져옵니다.

<code>$html = new simple_html_dom();
$html->load_file($artical_url);
echo "$html";</code>
로그인 후 복사
로그인 후 복사

PHP가 코드를 받은 후 첫 번째 사진의 코드는 다음과 같습니다.

<code><img data-type="gif" data-ratio="0.29676258992805754" data-w="" width="100%" data-src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif" style="margin: 0px; padding: 0px; width: 670px; height: auto !important; box-sizing: border-box !important; word-wrap: break-word !important; visibility: visible !important;"/></code>
로그인 후 복사
로그인 후 복사

브라우저가 페이지에 접근하여 이미지를 정상적으로 표시하기 위한 코드:

<code><img data-type="gif" data-ratio="0.29676258992805754" data-w="" width="100%" data-src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif" style="width: 670px !important; box-sizing: border-box !important; word-wrap: break-word !important; visibility: visible !important; height: auto !important;" _width="670px" src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif&amp;wxfrom=5&amp;wx_lazy=1"></code>
로그인 후 복사
로그인 후 복사

어떻게 해야 할까요? ?

답글 내용:

file_get_contents
curl
PHP 단순 HTML DOM 파서
html을 가져오는 세 가지 방법, 이미지가 표시되지 않으며, 컬도 브라우저를 시뮬레이션합니다.

다음 이미지 및 텍스트 페이지 링크는 예시입니다
WeChat 이미지 및 텍스트 페이지

예를 들어 html dom 모드에서 코드를 가져옵니다.

<code>$html = new simple_html_dom();
$html->load_file($artical_url);
echo "$html";</code>
로그인 후 복사
로그인 후 복사

PHP가 코드를 받은 후 첫 번째 사진의 코드는 다음과 같습니다.

<code><img data-type="gif" data-ratio="0.29676258992805754" data-w="" width="100%" data-src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif" style="margin: 0px; padding: 0px; width: 670px; height: auto !important; box-sizing: border-box !important; word-wrap: break-word !important; visibility: visible !important;"/></code>
로그인 후 복사
로그인 후 복사

브라우저가 페이지에 접근하여 이미지를 정상적으로 표시하기 위한 코드:

<code><img data-type="gif" data-ratio="0.29676258992805754" data-w="" width="100%" data-src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif" style="width: 670px !important; box-sizing: border-box !important; word-wrap: break-word !important; visibility: visible !important; height: auto !important;" _width="670px" src="http://mmbiz.qpic.cn/mmbiz/zynprs47B4SSmGjHh9gJq59bct0TbDmksGMe4kRiaFTspugicmSwLVVfK13HdQbKIR7gaxxwF6icEVT3tCp33IOtg/0?wx_fmt=gif&amp;wxfrom=5&amp;wx_lazy=1"></code>
로그인 후 복사
로그인 후 복사

어떻게 해야 할까요? ?

위 답변 감사드립니다. 안티-리칭에는 문제가 없을 것 같습니다. 크롤링 시 DOM 규칙이 data-src 및 src 속성을 결정할 수 없는 것 같습니다. 오랫동안 조사한 결과 simple_html_dom이 정말 좋은 것이며 다시 크롤링한 후 교체가 가능하다는 것을 알았습니다. 불행하게도 저는 PHP에 익숙하지 않기 때문에 문장이 항상 잘못 작성됩니다. 나중에 js 기본 메소드를 사용하여 국가를 저장하고 php 변수의 내용을 얻은 다음 이를 일반 규칙으로 대체하여 문제를 해결했습니다.
한 가지 더, html_dom을 사용한 후에는 $html->clear를 잊지 마세요.

curl 헤더 매개변수를 수정해 보세요

https://segmentfault.com/q/1010000005046169

귀하의 문제가 이번 문제와 비슷한 것 같으니 한번 시도해 보세요

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿