Craigslist, CURL, простые проблемы PHP с DOM
Я захожу в Craigslist с помощью CURL, чтобы проверить статус моих опубликованных объявлений. Проблема, с которой я сталкиваюсь, заключается в переносе HTML из вывода CURL $ в file_get_html. В то время как статусы Craigslist фактически вложены в элементы TR, я просто хотел протестировать самые основные функции, чтобы увидеть, проходили ли через них вещи (например, очистка ссылок). Они не.
Например, это не работает:
$cookie_file_path = getcwd()."/cookie.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.craigslist.org/login?LoginType=L&step=confirmation&originalURI=%2Flogin&rt=&rp=&inputEmailHandle='.$email.'&inputPassword='.$password.'&submit=Log%20In');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.craigslist.org');
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
echo $output;
//
include_once('simple_html_dom.php');
$html = file_get_html($output);
//find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
Я знаю, что выражение работает, потому что оно возвращает ссылки, если я добавляю " http://google.com/", или что-то еще.
2 ответа
Вот как это должно быть сделано
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.sitename.com');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$html= str_get_html($str);
Разве вы не должны использовать str_get_html вместо file_get_html? Так как $ouput это строка!