Добрый день!
Понадобилось написать скрипт, который парсит инфу с Амазона.
Решил сделать постраничный парсинг. С загруженной страницы, ссылка Next Page, аргументом возвращается в функцию для инициализации сеанса сURL. После выполнения запроса результат передаётся в PHP Simple HTML DOM Parser. Парсим нужную информацию, проверяем ссылку Next Page... Короче повторяем в цикле.
Проблема возникла когда новый сгенерённый URL, в переменной, возвращаю в функцию для cURL. И дальше 1-ой страницы дело не идёт. Причём, если я указываю тот же урл непосредственно в переменной как строка, всё нормально!
Может кто-то понимает, что происходит или сталкивался с подобной проблемой?
Скрипт неправильно работает со строками типа:
1. skruglikov - 23 Января, 2017 - 00:18:31 - перейти к сообщению
Правильно работает со строками типа:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $dom_2->load(curl_get($res . '/s/ref=sr_pg_2?rh=i%3Aaps%2Ck%3Aipad&page=2&keywords=ipad&ie=UTF8&qid=1485122977&spIA=B00IZBQ3LG,B01BNZN6DI'));
А хотелось бы как раз, чтобы работал именно первый вариант ;)
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- // PHP Simple HTML DOM Parser
- include_once('lib/simple_html_dom.php');
- // Resource & search page with keyword
- $res = 'https://www.amazon.com';
- $url = '/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=ipad';
- // First page
- echo $url . "<br>";
- // Create a DOM object & load HTML from a string
- $dom_1 = new simple_html_dom();
- $dom_1->load(curl_get($res . $url));
- $url = $dom_1->find('div[id=pagn] a[id=pagnNextLink]', 0)->href;
- $dom_1->clear();
- echo "<hr>";
- // Second page
- echo $url . "<br>";
- // Create a DOM object & load HTML from a string
- $dom_2 = new simple_html_dom();
- // $dom_2->load(curl_get($res . $url));
- $dom_2->load(curl_get($res . '/s/ref=sr_pg_2?rh=i%3Aaps%2Ck%3Aipad&page=2&keywords=ipad&ie=UTF8&qid=1485122977&spIA=B00IZBQ3LG,B01BNZN6DI'));
- $url = $dom_2->find('div[id=pagn] a[id=pagnNextLink]', 0)->href;
- $dom_2->clear();
- echo "<hr>";
- // Thrid page
- echo $url . "<br>";
- // Create a DOM object & load HTML from a string
- $dom_3 = new simple_html_dom();
- // $dom_3->load(curl_get($res . $url));
- $dom_3->load(curl_get($res . '/s/ref=sr_pg_3?rh=i%3Aaps%2Ck%3Aipad&page=3&keywords=ipad&ie=UTF8&qid=1485123047&spIA=B0052EP1XK,B008X1LHE6,B00IZBQ3LG,B01BNZN6DI'));
- $url = $dom_3->find('div[id=pagn] a[id=pagnNextLink]', 0)->href;
- $dom_3->clear();
- echo "<hr>";
- // Four page
- echo $url . "<br>";
- // Create a DOM object & load HTML from a string
- // ...
- echo "<hr>";
- // cURL
- function curl_get($url, $referer = "http://www.google.com.ua"){
- curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
- return $str;
- }
- ?>