尝试使用“ file_get_contents”,但不适用于特定网站

问题描述 投票:0回答:1

我正试图建立第一个小项目,只是为了好玩。因此,基本上我想做的是从其他网站获取数据(产品价格),作为该过程的一部分,我尝试使用“ file_get_contents”。在我测试过的几个网站上,一切都正常,但是由于某种原因,有一个网站似乎无法正常工作。

当我使用基本代码时:

$url = file_get_contents('https://www.ivory.co.il/catalog.php?id=14589');
echo $url;

它只是不断地重新加载页面。

即使我试图获取网站的源代码,我也会得到大量的代码。这是它的一部分:

<html>
<head>
<meta charset="utf-8">
<script>X0ww.Y2B=function (){return typeof X0ww.E2B.C2B==='function'?X0ww.E2B.C2B.apply(X0ww.E2B,arguments):X0ww.E2B.C2B;};X0ww.a8=function(){var l4=function(b4,B4){var R4=B4&0xffff;var y4=B4-R4;return(y4*b4|0)+(R4*b4|0)|0;},s4=function(C8,E8,c8){var l8=0xcc9e2d51,n8=0x1b873593;var T4=c8;var O8=E8&~0x3;for(var z8=0;z8<O8;z8+=4){var k4=C8.charCodeAt(z8)&0xff|(C8.charCodeAt(z8+1)&0xff)<<8|(C8.charCodeAt(z8+2)&0xff)<<16|(C8.charCodeAt(z8+3)&0xff)<<24;k4=l4(k4,l8);k4=(k4&0x1ffff)<<15|k4>>>17;k4=l4(k4,n8);T4^=k4;T4=(T4&0x7ffff)<<13|T4>>>19;T4=T4*5+0xe6546b64|0;}k4=0;switch(E8%4){case 3:k4=(C8.charCodeAt(O8+2)&0xff)<<16;case 2:k4|=(C8.charCodeAt(O8+1)&0xff)<<8;case 1:k4|=C8.charCodeAt(O8)&0xff;k4=l4(k4,l8);k4=(k4&0x1ffff)<<15|k4>>>17;k4=l4(k4,n8);T4^=k4;}T4^=E8;T4^=T4>>>16;T4=l4(T4,0x85ebca6b);T4^=T4>>>13;T4=l4(T4,0xc2b2ae35);T4^=T4>>>16;return T4;};return{C4:s4};}();X0ww.b1U=function(){var q1U=2;while(q1U!==1){switch(q1U){case 2:return{x1U:function(m1U){var V1U=2;while(V1U!==14){switch(V1U){case 4:V1U=X1U===m1U.length?3:9;break;case 1:var e1U=0,X1U=0;V1U=5;break;case 9:G1U+=String.fromCharCode(E1U.charCodeAt(e1U)^m1U.charCodeAt(X1U));V1U=8;break;case 2:var G1U='',E1U=decodeURI("e%253#Z%0Cg%10%03%19%7Ccr%05%0E%14myg%10%03%19ihc%02%14%12ziz%08%04%03pr%00%22/?DC%00lq$ZI%5D%22%3E4dGD6.'OC%003q%20GH%5E%17:+AJS%7B%04%19_CH5)/%5ECX%0E.(_TK!+#L%0Cf%14%0A%13ij%004)4GT%0A&22@%06C%3C%3Cl%7Dhg%10%08%0Dmbu%03%1E%08lcx%14%09%19%7Fch%16%17ld%0CI#%3E'%5CCo'%3E(%5C%0CK=+.IDO%252%25%02gI#4%16l%60%04%01%1F%00%13gN%3E?$%06u%5E#%3E'E%1Dk6%18)FRX%3E7hiAi%3E52ZIFj%1F#%5EGF%07%09%1EkRX=u%02MPK=%0D%14pe%5E#7h%19%1Dg084GKO52'nJK%223%16IVO#u%0BIEX%3E6#LOK%177'%5BNz0+#Z%1Dg%22#+D%14%04%15%14%0BlII$6#FR%11%1C(%3EEJ%18%7F%03%0Bdn~%05%0B%7Dxbl%7F%0B%22Ne%5E#7%7DySC20%12AKO%7F%0A3AEA%052+M%1D%7B$2%25CrC%3C%3E%05@CI:%14$BCI%25u%17%5DOI:%0F/ECi9%3E%25C%08%1Bj%09#IJz=:?MT%11%03%3E'DvF0%22#Z%08x4:*xJK(%3E4%00RGx%7B%07KRC'%3E%1E%08eE?/4GJ%0Ayht%05DC%25r%7DzCK=%0D/LCE%7F%09#IJ%7C8?#G%0E%5E%3CrfiE%5E8-#p%06i%3E52ZIFqsu%1A%0BH8/o%13uI#26%5COD6u%02AE%5E84(ITSj%08%11kRF%7F%08%11kRFj%08.MJF%7F%0E%0F%60CF!%3E4%13uB%3E8-_G%5C4%1D*IUB%7F%08.GEA&:0M%60F0(.%13uA(+#%06bO%25%3E%25%5COE?%60%12lei%257h%7Cbi%12/*%13qg%017'QCX%7F%14%05p%1DX%3C4%25P%08x4:*xJK(%3E4%08a%18q%18)FRX%3E7%7DZKE2#hzCK=%0B*I_O#%7B%01%1A%06i%3E52ZIF%7Fjl%1F%14Z)q%07KRC'%3E%1EgD@482%02LY%3E56%02QO3%3C*%08@X0%3C+MH%5Eq(.IBO#%7B.AABq2(%5C%06Z#%3E%25AUC%3E5%7C%02AO%25%0F/ECP%3E5#g@L%22%3E2%02yZ9:(%5CIG%7B(*AEO%7B%0FlFIX%3C:*%02df%04%1E%19jo~%02q4MKE'%3Elf%0CG%3E5)%5BVK2%3ElAUz%3E2(%5CoD%01:2@%0CY%25:%25C%0C_??#NOD4?l%5ECD544%08%1B%17qy%04ZOK?

似乎已以某种方式对其进行了加密。我也尝试使用cURL和User-Agent,但仍然无法使用。

在这种情况下我该怎么办?

php curl file-get-contents user-agent
1个回答
3
投票

未加密。该网站可能使用JS框架将数据加载到框架中,而不是在服务器端呈现页面。如果要以编程方式获取这些页面,则需要使用可以呈现javascript的内容。

您已经发现,file_get_contents()curl都不是这样的工具。像这样的无头铬的php包装器可能对您有用。

https://github.com/chrome-php/headless-chromium-php

© www.soinside.com 2019 - 2024. All rights reserved.