Как очистить веб-сайт через PHP, для которого требуются данные POST?

Я пытаюсь очистить веб-сайт, который принимает данные POST, чтобы вернуть правильную страницу (без POST он возвращает 15 результатов, с данными POST он возвращает все результаты).

В настоящее время мой код выглядит так:

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.thisismyurl.com/awesome");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, XXXXXX);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result= curl_exec($curl);

Я знаю, что мне нужно поместить свои поля сообщений в пространство, заполненное «XXXXXX», я просто не знаю, где выкопать поля/значения сообщений и как структурировать их в переменную, которую я туда передаю.

Любая помощь будет принята с благодарностью!


person OldDrunkenSailor    schedule 08.01.2012    source источник
comment
вот почему они делают URL-адреса SEO, потому что поисковые системы не индексируют страницы, которым необходимо иметь данные публикации / получения, чтобы получить страницу. вам нужно подумать о каждой возможной комбинации значений, чтобы получить правильные страницы, или вы получите тонну 404 при очистке. и почему вы используете POST? если вы пытаетесь найти страницу поиска, попробуйте вместо этого GET.   -  person Joseph    schedule 08.01.2012


Ответы (2)


Если это простая форма, то просто извлеките все поля формы и продублируйте их в своем скрипте. Если это какая-то динамическая форма, такая как javascript, создающий запрос и использующий ajax, вы можете обнюхивать данные с помощью инструментов разработчика (например, вкладка Firebug Net в Firefox, HTTPfox и т. д.) и извлекать данные сообщения по мере их отправки.

В любом случае, как только вы узнаете, какие поля/данные отправляются, остальные должны быть (относительно) легко продублированы/созданы.

person Marc B    schedule 08.01.2012
comment
Хазаа! после нескольких неудачных попыток, похоже, работает. Спасибо! - person OldDrunkenSailor; 08.01.2012

Я думаю, кто-то может искать код для замены XXXXXX. Я использую следующий фрагмент кода.

$ch = curl_init();
$timeout=5;
$name=$_REQUEST['name'];
$pass=$_REQUEST['pass'];
$data = array('username' => '$name', 'password' => '$pass');
$data=http_build_query($data);
curl_setopt($ch,CURLOPT_URL,"superawsomesite.com"); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
person Community    schedule 20.05.2012
comment
Работает отлично. Это должен быть принятый ответ. - person Mr Goobri; 19.12.2016