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

WBOY
Freigeben: 2016-08-04 09:21:17
Original
1855 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage