Heim >Backend-Entwicklung >PHP-Tutorial >Curl - Verschiedene PHP-Methoden zum Abrufen von WeChat-Grafikseitenbildern werden nicht angezeigt

Curl - Verschiedene PHP-Methoden zum Abrufen von WeChat-Grafikseitenbildern werden nicht angezeigt

WBOY
WBOYOriginal
2016-08-04 09:21:171858Durchsuche

file_get_contents
curl
PHP Simple HTML DOM parser
Drei Methoden zum Abrufen von HTML, das Bild wird nicht angezeigt, Curl simuliert auch den Browser.

Der folgende Link zur Bild- und Textseite ist ein Beispiel
WeChat-Bild- und Textseite

Zum Beispiel erhalten Sie den Code im HTML-Dom-Modus:

<code>$html = new simple_html_dom();
$html->load_file($artical_url);
echo "$html";</code>

Nachdem PHP den Code erhalten hat, der Code des ersten Bildes:

<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>

Der Code für den Browser, um auf die Seite zuzugreifen und das Bild normal anzuzeigen:

<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>

Was tun? ?

Antwortinhalt:

file_get_contents
curl
PHP Simple HTML DOM parser
Drei Methoden zum Abrufen von HTML, das Bild wird nicht angezeigt, Curl simuliert auch den Browser.

Der folgende Link zur Bild- und Textseite ist ein Beispiel
WeChat-Bild- und Textseite

Zum Beispiel erhalten Sie den Code im HTML-Dom-Modus:

<code>$html = new simple_html_dom();
$html->load_file($artical_url);
echo "$html";</code>

Nachdem PHP den Code erhalten hat, der Code des ersten Bildes:

<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>

Der Code für den Browser, um auf die Seite zuzugreifen und das Bild normal anzuzeigen:

<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>

Was tun? ?

Vielen Dank für die Antwort oben. Es sollte kein Problem mit Anti-Hotlinking sein. Es scheint, dass die DOM-Regeln die Attribute von data-src und src beim Crawlen nicht bestimmen können. Nachdem ich lange recherchiert hatte, stellte ich fest, dass simple_html_dom tatsächlich eine gute Sache ist und es nach dem Zurückkriechen möglich sein sollte, es zu ersetzen. Leider sind die Anweisungen immer falsch geschrieben, da ich mich mit PHP nicht so gut auskenne. Später habe ich die native Methode von js verwendet, um das Land zu retten, den Inhalt von PHP-Variablen abgerufen und sie durch reguläre Regeln ersetzt, um das Problem zu lösen.
Eines noch: Vergessen Sie nach der Verwendung von html_dom nicht $html->clear.

Versuchen Sie, die Curl-Header-Parameter zu ändern

https://segmentfault.com/q/1010000005046169

Es fühlt sich an, als ob Ihr Problem diesem ähnlich ist, probieren Sie es aus

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn