Соскоб книги Цены - PullRequest
       3

Соскоб книги Цены

1 голос
/ 24 февраля 2011

Я пытаюсь написать приложение для очистки и столкнулся с проблемами. Мой код PHP Curl не тянет страницы с ценой книг. Это возвращает меня к веб-корню домена.

Я пытаюсь найти сайт по ISBN.

Я несколько дней бился головой о стену. Любая помощь будет наиболее ценится!

Код:

<code><form method="post" for="new-search" name="SearchTerm" class='form-validate' id="SearchTerm" action="index.php">
    <textarea rows="3" name="SearchTerm" id="SearchTerm" cols="40" class="validate-required error"></textarea><div class="error" id="SearchTerm-error">
    <br>                        
    <button class="search primary" type="submit">continue</button>

</form>


<?php

/*
echo("<pre>");print_r($_GET);echo("
"); эхо ( "
");print_r($_POST);echo("
"); * / $ isbn = $ _POST ['SearchTerm']; $ userAgent = 'User-Agent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.8.1.16) Gecko / 20080702 Firefox / 2.0.0.16'; $ fields = array ( 'url' => ("http://www.bookleberry.com/Search/SearchKeyword"), 'qurl' => ("http://www.bookleberry.com/Search/SearchKeyword/". $ _POST ['SearchTerm']), 'SearchTerm' => ($ _POST ['SearchTerm']), 'Page' => ('1'), 'class' => ('textable validate-required'), 'for' => ('new-search'), 'result-count' => ('1'), 'status' => 'success', ); $ SearchTerm = ($ fields ['SearchTerm']); $ url = ($ fields ['url']); $ Page = ($ fields ['Page']); эхо ( "
");
print_r($fields);
echo("
"); if ($ isbn! = NULL) { // открываем соединение $ ch = curl_init ($ url); // устанавливаем URL, количество переменных POST, данные POST curl_setopt ($ ch, CURLOPT_HEADER, $ userAgent); curl_setopt ($ ch, CURLOPT_URL, $ url); echo "before curl_exec:
"; echo "curl_errno =". curl_errno ($ ch). "
"; echo "curl_error =". curl_error ($ ch). "
"; curl_setopt ($ ч, CURLOPT_POST, граф ($ полей)); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, "? SearchTerm = $ SearchTerm"); curl_setopt ($ ch, CURLOPT_HTTPGET, 1); curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ ch, CURLOPT_TIMEOUT, 9999999); curl_setopt ($ ch, CURLOPT_HTTPHEADER, массив ( «Принять: приложение / JSON» )); $ info = curl_getinfo ($ ch); // выполнить сообщение $ result = curl_exec ($ ch); распечатать результат $; печать "
\n";
print_r(curl_getinfo($ch));  // get error info

?>
</code>

1 Ответ

4 голосов
/ 24 февраля 2011

Не бей головой, используй!

  • Установить fiddler .
  • Сделайте запрос через браузер, посмотрите в фиддлере, что именно выложено. Сюда входят все заголовки, файлы cookie и переменные формы.
  • Сделайте запись, используя ваш код, еще раз изучите скрипач
  • Сравните различия между ними и скорректируйте свой сценарий.
  • Повтор.

Также помогает установить firebug . Использование копии Xpath и вставка ее в запрос php DOM xpath делает процесс поиска интересным и простым!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...