За последние 24 часа нас посетили 19175 программистов и 1634 робота. Сейчас ищут 917 программистов ...

Эмуляция браузера

Тема в разделе "Прочие вопросы по PHP", создана пользователем morozov_kirill, 27 июн 2009.

  1. morozov_kirill

    morozov_kirill Активный пользователь

    С нами с:
    27 июн 2009
    Сообщения:
    3
    Симпатии:
    0
    Всем доброго времени суток! 3 года я не занимался кодингом и вообще практически не подходил к компу, но вот срочно понадобился парсер на пхп. Было решено самостоятельно заняться этим делом. Да вот только что-то все повылетало из головы, вроде уже и маны почитал, но не исполняется даже элементарный код:

    PHP:
    1.  
    2.  
    3. <?php
    4.  
    5. $fp = fsockopen ("http://www.4x4motors.com", 80, $errno, $errstr, 90);
    6.  
    7.  
    8. //fputs ($fp, "GET [url=http://www.4x4motors.com]http://www.4x4motors.com[/url] / HTTP/1.1\r\n");
    9. fputs ($fp, "Host: [url=http://www.4x4motors.com]http://www.4x4motors.com[/url]\r\n");
    10. fputs ($fp,"User-Agent: Mozilla/5.0 Galeon/1.2.6 (X11; Linux i686; U;) Gecko/20020916\r\n");
    11. fputs ($fp,"Content-type: text/html\r\n");
    12. fputs ($fp, "GET /01showcardetails.asp?id=4754 HTTP/1.1\r\n");
    13.  
    14. fputs ($fp, "Connection: close\r\n");
    15.  
    16. echo "<pre>";
    17.  
    18. while (!feof ($fp))
    19.     echo htmlspecialchars(fgets($fp, 4096));
    20. echo "</pre>";
    21.  
    22. fclose($fp);
    23.  
    24. ?>
    25.  
    баузер просто виснет. :oops:

    у кого какие мысли в этом направлении?
     
  2. morozov_kirill

    morozov_kirill Активный пользователь

    С нами с:
    27 июн 2009
    Сообщения:
    3
    Симпатии:
    0
    После полудня мучений разобрался с конструкцией и появилась новая задача:

    для создания запроса и получения результата поиска нам необходимо методом POST послать скрипту 2 параметра: модель и марку машины.

    Для получения списка моделей авто работает конструкция типа

    01showallsearch.asp?id=CARM7161, но вот загвоздка в том, что в этой мешанине кода я не могу понять, как называется параметр "модели авто" и какому скрипту он передается. анализатор http заголовков привел меня к скрипту 01searchresult3.asp, но как правильно и что ему передать НЕ МОГУ ПОНЯТЬ :evil:
     
  3. calibr

    calibr Активный пользователь

    С нами с:
    28 июн 2009
    Сообщения:
    2
    Симпатии:
    0
    Для целей эмуляции браузера есть харошая вещь HTTP_CLIENT из репозитория PEAR
     
  4. morozov_kirill

    morozov_kirill Активный пользователь

    С нами с:
    27 июн 2009
    Сообщения:
    3
    Симпатии:
    0
    вопрос с эмуляцией уже решен, теперь вся загвоздка в том, какие названия у параметров и какому скрипту посылать (предположительно 01searchresult3.asp, т.к. к нему ведут все концы), вот код страницы поиска:

    HTML:
    1.  
    2. <script language="javascript">
    3.  
    4. function callsame(temp)
    5. {
    6. var carmake=document.frmgetall.selcarmake.value;
    7.  
    8.  
    9. if(carmake!="abc")
    10. {
    11. document.frmgetall.hid1.value=temp;
    12.  
    13. document.frmgetall.action="01showallsearch.asp?id="+carmake;
    14.  
    15. document.frmgetall.submit();
    16. }
    17. }
    18.  
    19.  
    20. function test(temp1,temp2)
    21. {
    22.  
    23. var carmake=document.frmgetall.selcarmake.value;
    24. var carmodel=document.frmgetall.selcartype.value;
    25. //alert(carmake);
    26. //alert(carmodel);
    27.  
    28. if((carmake=="abc") && (carmodel=="def"))
    29. {
    30.  
    31. document.frmgetall.hidcarmake.value=temp1;
    32. document.frmgetall.hidcarmodel.value=temp2;
    33. document.frmgetall.action="01searchresult.asp";
    34. document.frmgetall.submit();
    35.  
    36. }
    37.  
    38. if((carmake!="abc")&& (carmodel=="def"))
    39. {
    40. document.frmgetall.hidcarmake.value=carmake;
    41. document.frmgetall.hidcarmodel.value=temp2;
    42. document.frmgetall.action="01searchresult1.asp";
    43. document.frmgetall.submit();
    44.  
    45. }
    46.  
    47. if((carmake=="abc")&& (carmodel!="def"))
    48. {
    49. document.frmgetall.hidcarmake.value=temp1;
    50. document.frmgetall.hidcarmodel.value=carmodel;
    51. document.frmgetall.action="01searchresult2.asp";
    52. document.frmgetall.submit();
    53.  
    54. }
    55.  
    56. if((carmake!="abc")&& (carmodel!="def"))
    57. {
    58.  
    59. document.frmgetall.hidcarmake.value=carmake;
    60. document.frmgetall.hidcarmodel.value=carmodel;
    61. document.frmgetall.action="01searchresult3.asp";
    62. document.frmgetall.submit();
    63.  
    64. }
    65.  
    66.  
    67. }
    68.  
    69.  
    70. <form name="frmgetall" method="Post">
    71.  
    72. <table class=productDisplay border=0 height="575">
    73.     <tr>
    74.         <td width="60">&nbsp;</td>
    75.  
    76.         <td valign="top">
    77.             <p>&nbsp;</p>
    78.             <p><b>Select from options below:</b></p>
    79.  
    80.             <table class=productDisplay width="100%" border=0 align="center" cellspacing=0 cellpadding=0>
    81.             <tr>
    82.                 <td width="11%" rowspan="6">&nbsp;</td>
    83.                 <td width="23%"><b>Car Make:</b></td>
    84.  
    85.                 <td width="65%">
    86.                 <select name="selcarmake" onchange="callsame('4x4M2003,4x4M2005,4x4M2001,4x4M2007')" size="1" style="font-family: Verdana">
    87.                 <font color="#0000ff"><option value="abc" selected>-- ALL --</option></font>
    88.                
    89.                
    90.                
    91.                 <option value="CARM7097">ALFA ROMEO</option>
    92.                
    93.                
    94.                
    95.                 <option value="CARM7104">AUDI</option>
    96.                
    97.                
    98.                
    99.                 <option value="CARM7126">BENTLEY</option>
    100.                
    101.                
    102.                
    103.                 <option value="CARM7134">BMW</option>
    104.  
    105.                
    106.                
    107.                
    108.                 <option value="CARM7122">CADILLAC</option>
    109.                
    110.                
    111.                
    112.                 <option value="CARM7033">CHEVROLET</option>
    113.                
    114.                
    115.                
    116.                 <option value="CARM7128">CHRYSLER</option>
    117.                
    118.                
    119.                
    120.                 <option value="CARM7070">DAIHATSU</option>
    121.                
    122.                
    123.                
    124.                 <option value="CARM7003">DODGE</option>
    125.                
    126.                
    127.                
    128.                 <option value="CARM7132">FIAT</option>
    129.  
    130.                
    131.                
    132.                
    133.                 <option value="CARM7129">FORD</option>
    134.                
    135.                
    136.                
    137.                 <option value="CARM7157">GMC</option>
    138.                
    139.                
    140.                
    141.                 <option value="CARM7006">HONDA</option>
    142.                
    143.                
    144.                
    145.                 <option value="CARM7133">HUMMER</option>
    146.                
    147.                
    148.                
    149.                 <option value="CARM7099">HYUNDAI</option>
    150.                
    151.                
    152.                
    153.                 <option value="CARM7163">INFINITI</option>
    154.  
    155.                
    156.                
    157.                
    158.                 <option value="CARM7114">ISUZU</option>
    159.                
    160.                
    161.                
    162.                 <option value="CARM7100">JAGUAR</option>
    163.                
    164.                
    165.                
    166.                 <option value="CARM7009">JEEP</option>
    167.                
    168.                
    169.                
    170.                 <option value="CARM7010">KIA</option>
    171.                
    172.                
    173.                
    174.                 <option value="CARM7011">LAND ROVER</option>
    175.                
    176.                
    177.                
    178.                 <option value="CARM7156">LEXUS</option>
    179.  
    180.                
    181.                
    182.                
    183.                 <option value="CARM7165">LINCOLN</option>
    184.                
    185.                
    186.                
    187.                 <option value="CARM7080">MAZDA</option>
    188.                
    189.                
    190.                
    191.                 <option value="CARM7012">MERCEDES</option>
    192.                
    193.                
    194.                
    195.                 <option value="CARM7166">MERCURY</option>
    196.                
    197.                
    198.                
    199.                 <option value="CARM7158">MINI</option>
    200.                
    201.                
    202.                
    203.                 <option value="CARM7130">MITSUBISHI</option>
    204.  
    205.                
    206.                
    207.                
    208.                 <option value="CARM7108">NISSAN</option>
    209.                
    210.                
    211.                
    212.                 <option value="CARM7072">OPEL</option>
    213.                
    214.                
    215.                
    216.                 <option value="CARM7107">PEUGEOT</option>
    217.                
    218.                
    219.                
    220.                 <option value="CARM7154">PONTIAC</option>
    221.                
    222.                
    223.                
    224.                 <option value="CARM7112">PORSCHE</option>
    225.                
    226.                
    227.                
    228.                 <option value="CARM7167">RANGE ROVER</option>
    229.  
    230.                
    231.                
    232.                
    233.                 <option value="CARM7119">RENAULT</option>
    234.                
    235.                
    236.                
    237.                 <option value="CARM7168">ROLLLSROYCE</option>
    238.                
    239.                
    240.                
    241.                 <option value="CARM7125">ROVER</option>
    242.                
    243.                
    244.                
    245.                 <option value="CARM7149">SAAB</option>
    246.                
    247.                
    248.                
    249.                 <option value="CARM7139">SEAT</option>
    250.                
    251.                
    252.                
    253.                 <option value="CARM7169">SKODA</option>
    254.  
    255.                
    256.                
    257.                
    258.                 <option value="CARM7015">SSANGYONG</option>
    259.                
    260.                
    261.                
    262.                 <option value="CARM7123">SUZUKI</option>
    263.                
    264.                
    265.  
    266.                 <option value="CARM7161" selected>TOYOTA</option>
    267.  
    268.                
    269.                
    270.                 <option value="CARM7146">VOLKSWAGEN</option>
    271.                
    272.                
    273.                
    274.                 <option value="CARM7102">VOLVO</option>
    275.                
    276.                    
    277.                
    278.                 </select>    
    279.                 </td>
    280.  
    281.             </tr>
    282.             <tr>
    283.                 <td colspan="2">&nbsp;</td>
    284.             </tr>
    285.             <tr>
    286.                 <td width="23%"><b>Car Model:</b></td>
    287.                 <td width="65%">
    288.                     <select name="selcartype" size="1" style="font-family: Verdana">
    289.  
    290.                     <font color="#0000ff"><option value="def" selected>-- ALL --</option></font>
    291.                    
    292.                    
    293.                     <option value="AURION">AURION</option>
    294.  
    295.                    
    296.                    
    297.                     <option value="AVALON">AVALON</option>
    298.  
    299.                    
    300.                    
    301.                     <option value="CAMRY">CAMRY</option>
    302.  
    303.                    
    304.                    
    305.                     <option value="COROLLA">COROLLA</option>
    306.  
    307.                    
    308.                    
    309.                     <option value="ECHO">ECHO</option>
    310.  
    311.                    
    312.                    
    313.                     <option value="F J CRUISER">F J CRUISER</option>
    314.  
    315.                    
    316.                    
    317.                     <option value="FORTUNER">FORTUNER</option>
    318.  
    319.                    
    320.                    
    321.                     <option value="INNOVA">INNOVA</option>
    322.  
    323.                    
    324.                    
    325.                     <option value="LANDCRUISER ">LANDCRUISER </option>
    326.  
    327.                    
    328.                    
    329.                     <option value="MR2">MR2</option>
    330.  
    331.                    
    332.                    
    333.                     <option value="PRADO">PRADO</option>
    334.  
    335.                    
    336.                    
    337.                     <option value="RAV 4">RAV 4</option>
    338.  
    339.                    
    340.                    
    341.                     <option value="TUNDRA">TUNDRA</option>
    342.  
    343.                    
    344.                    
    345.                     <option value="YARIS">YARIS</option>
    346.  
    347.                        
    348.  
    349.                     </select>
    350.                 </td>
    351.             </tr>
    352.            
    353.             <tr>
    354.                 <td colspan="2">&nbsp;</td>
    355.             </tr>
    356.  
    357.             <tr>
    358.                 <td width="23%">&nbsp;</td>
    359.                 <td width="65%" >
    360.                     <input type="button" name="btnserch" value="Search" onclick="test('CARM7097,CARM7104,CARM7120,CARM7142,CARM7126,CARM7134,CARM7121,CARM7110,CARM7122,CARM7143,CARM7033,CARM7061,CARM7138,CARM7001,CARM7128,CARM7034,CARM7141,CARM7070,CARM7003,CARM7171,CARM7147,CARM7132,CARM7106,CARM7129,CARM7004,CARM7044,CARM7157,CARM7005,CARM7006,CARM7162,CARM7133,CARM7099,CARM7095,CARM7031,CARM7007,CARM7163,CARM7114,CARM7100,CARM7009,CARM7010,CARM7140,CARM7164,CARM7011,CARM7156,CARM7018,CARM7127,CARM7165,CARM7080,CARM7144,CARM7150,CARM7148,CARM7012,CARM7105,CARM7101,CARM7166,CARM7158,CARM7160,CARM7130,CARM7131,CARM7013,CARM7108,CARM7014,CARM7145,CARM7072,CARM7107,CARM7124,CARM7154,CARM7112,CARM7118,CARM7167,CARM7119,CARM7159,CARM7168,CARM7125,CARM7149,CARM7152,CARM7139,CARM7041,CARM7169,CARM7015,CARM7123,CARM7094,CARM7161,CARM7155,CARM7153,CARM7017,CARM7146,CARM7042,CARM7115,CARM7086,CARM7102,CARM7170,','')" style="font-family: Verdana">
    361.                 </td>
    362.             </tr>
    363.             <tr>
    364.                 <td>
    365.                     <input type="hidden" name="hidcarmake">
    366.  
    367.                     <input type="hidden" name="hidcarmodel">
    368.                     <input type="hidden" name="hid1">
    369.                     <input type="hidden" name="hidcategory" value="4x4M2003,4x4M2005,4x4M2001,4x4M2007">
    370.                
    371.