Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?

Was tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?

藏色散人
藏色散人Original
2021-10-19 09:29:142726Durchsuche

Lösung für das Problem, dass PHP Artikel sammelt und Bilder nicht angezeigt werden: 1. Sammeln Sie Baidu-Suchergebnisse basierend auf Schlüsselwörtern. 2. Konvertieren Sie den gesammelten HTML-Code stapelweise entsprechend dem definierten Domainnamen.

Was tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Was soll ich tun, wenn die von PHP gesammelten Bilder nicht angezeigt werden?

Lösung für das Problem, dass PHP CURL Baidu-Suchergebnisse sammelt und Bilder nicht angezeigt werden

1. Sammeln Sie Baidu-Suchergebnisse basierend auf Schlüsselwörtern.

Sammeln Sie Baidu-Suchergebnisse basierend auf Schlüsselwörtern. Sie können Curl verwenden, um dies zu erreichen. Der Code lautet wie folgt:

<p><?php <br/>function doCurl($url, $data=array(), $header=array(), $timeout=30){<br>  $ch = curl_init();<br>  curl_setopt($ch, CURLOPT_URL, $url);<br>  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);<br>  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br>  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);<br>  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);<br>  $response = curl_exec($ch);<br>  if($error=curl_error($ch)){<br>    die($error);<br>  }<br>  curl_close($ch);<br>  return $response;<br>}<br>$wd = '仙剑奇侠传';<br>$url = 'http://www.baidu.com/s?wd='.urlencode($wd);<br>$data = array();<br>$header = array();<br>$response = doCurl($url, $data, $header, 5);<br>echo $response;<br>?><br></p>

Nach dem Exportieren wurde festgestellt, dass einige Bilder nicht angezeigt werden können.

Was tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?

2. Analyse der Gründe, warum die gesammelten Bilder nicht angezeigt werden. Suchen Sie direkt in Baidu, und die Seite kann Bilder anzeigen. Verwenden Sie Firebug, um den Bildpfad zu überprüfen und festzustellen, dass sich der Domänenname des gesammelten Bildes vom Domänennamen des auf Baidu gesuchten Bildes unterscheidet.

Erfassen Sie den zurückgegebenen Bilddomänennamen t11.baidu.com Die Konvertierung ist anders

Sammlung

<p>var list = {<br>    "graph.baidu.com": "http://graph.baidu.com",<br>    "t1.baidu.com":"http://t1.baidu.com",<br>    "t2.baidu.com":"http://t2.baidu.com",<br>    "t3.baidu.com":"http://t3.baidu.com",<br>    "t10.baidu.com":"http://t10.baidu.com",<br>    "t11.baidu.com":"http://t11.baidu.com",<br>    "t12.baidu.com":"http://t12.baidu.com",<br>    "i7.baidu.com":"http://i7.baidu.com",<br>    "i8.baidu.com":"http://i8.baidu.com",<br>    "i9.baidu.com":"http://i9.baidu.com",<br>};<br></p>

Normale SucheWas tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?

<p>var list = {<br>    "graph.baidu.com": "https://sp0.baidu.com/-aYHfD0a2gU2pMbgoY3K",<br>    "t1.baidu.com":"https://ss0.baidu.com/6ON1bjeh1BF3odCf",<br>    "t2.baidu.com":"https://ss1.baidu.com/6OZ1bjeh1BF3odCf",<br>    "t3.baidu.com":"https://ss2.baidu.com/6OV1bjeh1BF3odCf",<br>    "t10.baidu.com":"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq",<br>    "t11.baidu.com":"https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq",<br>    "t12.baidu.com":"https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq",<br>    "i7.baidu.com":"https://ss0.baidu.com/73F1bjeh1BF3odCf",<br>    "i8.baidu.com":"https://ss0.baidu.com/73x1bjeh1BF3odCf",<br>    "i9.baidu.com":"https://ss0.baidu.com/73t1bjeh1BF3odCf",<br>};<br></p>
Daher kann geschlossen werden, dass Baidu anhand der Quelladresse, der IP, des Headers und anderer Parameter bestimmt, ob es erfasst wird, und unterschiedliche js zurückgibt.

3. Die Lösung für das Problem, dass die Bilder nach der Sammlung nicht angezeigt werden

Was tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt? Führen Sie einfach eine Stapelkonvertierung des gesammelten HTML entsprechend dem definierten Domainnamen durch.

<p><?php <br/>function doCurl($url, $data=array(), $header=array(), $timeout=30){<br>  $ch = curl_init();<br>  curl_setopt($ch, CURLOPT_URL, $url);<br>  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);<br>  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br>  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);<br>  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);<br>  $response = curl_exec($ch);<br>  if($error=curl_error($ch)){<br>    die($error);<br>  }<br>  curl_close($ch);<br>  return $response;<br>}<br>// 域名转换<br>function cdomain($str){<br>  $baidu_domain = '{<br>    "http://graph.baidu.com": "https://sp0.baidu.com/-aYHfD0a2gU2pMbgoY3K",<br>    "http://p.qiao.baidu.com":"https://sp0.baidu.com/5PoXdTebKgQFm2e88IuM_a",<br>    "http://vse.baidu.com":"https://sp3.baidu.com/6qUDsjip0QIZ8tyhnq",<br>    "http://hdpreload.baidu.com":"https://sp3.baidu.com/7LAWfjuc_wUI8t7jm9iCKT-xh_",<br>    "http://lcr.open.baidu.com":"https://sp2.baidu.com/8LUYsjW91Qh3otqbppnN2DJv",<br>    "http://kankan.baidu.com":"https://sp3.baidu.com/7bM1dzeaKgQFm2e88IuM_a",<br>    "http://xapp.baidu.com":"https://sp2.baidu.com/yLMWfHSm2Q5IlBGlnYG",<br>    "http://dr.dh.baidu.com":"https://sp0.baidu.com/-KZ1aD0a2gU2pMbgoY3K",<br>    "http://xiaodu.baidu.com":"https://sp0.baidu.com/yLsHczq6KgQFm2e88IuM_a",<br>    "http://sensearch.baidu.com":"https://sp1.baidu.com/5b11fzupBgM18t7jm9iCKT-xh_",<br>    "http://s1.bdstatic.com":"https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K",<br>    "http://olime.baidu.com":"https://sp0.baidu.com/8bg4cTva2gU2pMbgoY3K",<br>    "http://app.baidu.com":"https://sp2.baidu.com/9_QWsjip0QIZ8tyhnq",<br>    "http://i.baidu.com":"https://sp0.baidu.com/74oIbT3kAMgDnd_",<br>    "http://c.baidu.com":"https://sp0.baidu.com/9foIbT3kAMgDnd_",<br>    "http://sclick.baidu.com":"https://sp0.baidu.com/5bU_dTmfKgQFm2e88IuM_a",<br>    "http://nsclick.baidu.com":"https://sp1.baidu.com/8qUJcD3n0sgCo2Kml5_Y_D3",<br>    "http://sestat.baidu.com":"https://sp1.baidu.com/5b1ZeDe5KgQFm2e88IuM_a",<br>    "http://eclick.baidu.com":"https://sp3.baidu.com/-0U_dTmfKgQFm2e88IuM_a",<br>    "http://api.map.baidu.com":"https://sp2.baidu.com/9_Q4sjOpB1gCo2Kml5_Y_D3",<br>    "http://ecma.bdimg.com":"https://ss1.bdstatic.com/-0U0bXSm1A5BphGlnYG",<br>    "http://ecmb.bdimg.com":"https://ss0.bdstatic.com/-0U0bnSm1A5BphGlnYG",<br>    "http://t1.baidu.com":"https://ss0.baidu.com/6ON1bjeh1BF3odCf",<br>    "http://t2.baidu.com":"https://ss1.baidu.com/6OZ1bjeh1BF3odCf",<br>    "http://t3.baidu.com":"https://ss2.baidu.com/6OV1bjeh1BF3odCf",<br>    "http://t10.baidu.com":"https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq",<br>    "http://t11.baidu.com":"https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq",<br>    "http://t12.baidu.com":"https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq",<br>    "http://i7.baidu.com":"https://ss0.baidu.com/73F1bjeh1BF3odCf",<br>    "http://i8.baidu.com":"https://ss0.baidu.com/73x1bjeh1BF3odCf",<br>    "http://i9.baidu.com":"https://ss0.baidu.com/73t1bjeh1BF3odCf",<br>    "http://b1.bdstatic.com":"https://ss0.bdstatic.com/9uN1bjq8AAUYm2zgoY3K",<br>    "http://ss.bdimg.com":"https://ss1.bdstatic.com/5aV1bjqh_Q23odCf",<br>    "http://opendata.baidu.com":"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv",<br>    "http://api.open.baidu.com":"https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv",<br>    "http://tag.baidu.com":"https://sp1.baidu.com/6LMFsjip0QIZ8tyhnq",<br>    "http://f3.baidu.com":"https://sp2.baidu.com/-uV1bjeh1BF3odCf",<br>    "http://s.share.baidu.com":"https://sp0.baidu.com/5foZdDe71MgCo2Kml5_Y_D3",  <br>    "http://bdimg.share.baidu.com":"https://ss1.baidu.com/9rA4cT8aBw9FktbgoI7O1ygwehsv",<br>    "http://1.su.bdimg.com":"https://ss0.bdstatic.com/k4oZeXSm1A5BphGlnYG",<br>    "http://2.su.bdimg.com":"https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG",<br>    "http://3.su.bdimg.com":"https://ss2.bdstatic.com/kfoZeXSm1A5BphGlnYG",<br>    "http://4.su.bdimg.com":"https://ss3.bdstatic.com/lPoZeXSm1A5BphGlnYG",<br>    "http://5.su.bdimg.com":"https://ss0.bdstatic.com/l4oZeXSm1A5BphGlnYG",<br>    "http://6.su.bdimg.com":"https://ss1.bdstatic.com/lvoZeXSm1A5BphGlnYG",<br>    "http://7.su.bdimg.com":"https://ss2.bdstatic.com/lfoZeXSm1A5BphGlnYG",<br>    "http://8.su.bdimg.com":"https://ss3.bdstatic.com/iPoZeXSm1A5BphGlnYG"<br>  }';<br>  $domain = json_decode($baidu_domain, true);<br>  foreach($domain as $k=>$v){<br>    $str = str_replace($k, $v, $str);<br>  }<br>  return $str;<br>}<br>$wd = '仙剑奇侠传';<br>$url = 'http://www.baidu.com/s?wd='.urlencode($wd);<br>$data = array();<br>$header = array();<br>$response = doCurl($url, $data, $header, 5);<br>echo cdomain($response); // 调用域名转换<br>?><br></p>

Nach dem Hinzufügen der Domainnamenkonvertierung können alle Bilder normal angezeigt werden.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP Artikelbilder sammelt, diese aber nicht anzeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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