Новичок
Покинул форум
Сообщений всего: 24
Дата рег-ции: Июнь 2017
Помог: 0 раз(а)
|
Строитель пишет:webdeveloperrr пишет:Переход по ссылке пока не идет А обращение у вас каждый раз идёт к одному и тому же сайту? В ссылке изменяются только параметры? Если да, то нужно извлечь get-параметры из ссылки, и передать их в функцию. Только и в функции нужно подправить приём этих параметров.
Я не могу написать сразу рабочее решение, т.к. я не знаю, что вы грабите, и что вам нужно в итоге получить.
PS: И ещё, пользовательских функций у вас должно быть минимум три: одна для работы с phpQuery, вторая - для записи изображений в папку, и треться - для записи в csv-файл.
(Добавление)
webdeveloperrr, я дописал условие с регуляркой, по идее теперь переход по ссылке должен отрабатывать (демо-пример): Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
header('Content-type: text/html; charset=utf8'); require 'curl/curl.php'; require 'phpquery/phpQuery/phpQuery.php'; include 'db.php'; // Сохраняем наш код в функцию function getData($url) { $csv = 'file.csv'; // Название вашего CSV-файла $texts = []; $files = []; $i = 0; // Переменная-счётчик $url = $arr[1]; } $doc = phpQuery::newDocument($file); foreach ($doc->find('.listing-card') as $article) {// первая выборка //foreach ($doc->find('div#item-content ') as $article) {//вторая выборка $article = pq($article); $img = $article->find('.listing-thumb img')->attr('src'); $text = $article->find(".listing-basicinfo 'p' "); $link = $article->find('a')->attr('href'); $img2 = $article->find('img.example-image ')->attr('src'); $text2 = $article->find("div#description 'p' ")->text(); echo "<img src='$img'>";'<br>'; echo "<img src='$img2'>";'<br>'; echo $link;'<br>'; echo $text;'<br>'; echo $text2;'<br>'; echo '<hr>'; $file = 'img/'. $time . ++$i .'.jpg'; $texts[] = $text; $texts[] = $text2; $files[] = $file; $result = mysql_query ("INSERT INTO pars (img,name,name2) VALUES ('$file', '$text,$text2')"); if ($result == 'true') { echo "<p>succes!</p>"; } else { echo "<p>fall!</p>"; } } $list = [ $texts, $files ]; foreach ($list as $fields) { } // Возвращаем ссылку return $link; } // Если был переход по ссылке if (isset($_GET['data'])) { // Принимаем данные * // Передаём данные нашей функции (для записи в файлы и БД) getData($data); } else { // По умолчанию парсим как обычно $url = 'http://site.ru/index.php?page=search&sCategory=110'; // Наша функция вернёт ссылку $link = getData($url); // Эту ссылку мы пропишем в теге и выведем в браузер echo '<a href="?data='. $link .'">'. $link .'</a>'; }
обращение идёт к одному и тому же сайту
(Добавление)
webdeveloperrr пишет:Строитель пишет:webdeveloperrr пишет:Переход по ссылке пока не идет А обращение у вас каждый раз идёт к одному и тому же сайту? В ссылке изменяются только параметры? Если да, то нужно извлечь get-параметры из ссылки, и передать их в функцию. Только и в функции нужно подправить приём этих параметров.
Я не могу написать сразу рабочее решение, т.к. я не знаю, что вы грабите, и что вам нужно в итоге получить.
PS: И ещё, пользовательских функций у вас должно быть минимум три: одна для работы с phpQuery, вторая - для записи изображений в папку, и треться - для записи в csv-файл.
(Добавление)
webdeveloperrr, я дописал условие с регуляркой, по идее теперь переход по ссылке должен отрабатывать (демо-пример): Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
header('Content-type: text/html; charset=utf8'); require 'curl/curl.php'; require 'phpquery/phpQuery/phpQuery.php'; include 'db.php'; // Сохраняем наш код в функцию function getData($url) { $csv = 'file.csv'; // Название вашего CSV-файла $texts = []; $files = []; $i = 0; // Переменная-счётчик $url = $arr[1]; } $doc = phpQuery::newDocument($file); foreach ($doc->find('.listing-card') as $article) {// первая выборка //foreach ($doc->find('div#item-content ') as $article) {//вторая выборка $article = pq($article); $img = $article->find('.listing-thumb img')->attr('src'); $text = $article->find(".listing-basicinfo 'p' "); $link = $article->find('a')->attr('href'); $img2 = $article->find('img.example-image ')->attr('src'); $text2 = $article->find("div#description 'p' ")->text(); echo "<img src='$img'>";'<br>'; echo "<img src='$img2'>";'<br>'; echo $link;'<br>'; echo $text;'<br>'; echo $text2;'<br>'; echo '<hr>'; $file = 'img/'. $time . ++$i .'.jpg'; $texts[] = $text; $texts[] = $text2; $files[] = $file; $result = mysql_query ("INSERT INTO pars (img,name,name2) VALUES ('$file', '$text,$text2')"); if ($result == 'true') { echo "<p>succes!</p>"; } else { echo "<p>fall!</p>"; } } $list = [ $texts, $files ]; foreach ($list as $fields) { } // Возвращаем ссылку return $link; } // Если был переход по ссылке if (isset($_GET['data'])) { // Принимаем данные * // Передаём данные нашей функции (для записи в файлы и БД) getData($data); } else { // По умолчанию парсим как обычно $url = 'http://site.ru/index.php?page=search&sCategory=110'; // Наша функция вернёт ссылку $link = getData($url); // Эту ссылку мы пропишем в теге и выведем в браузер echo '<a href="?data='. $link .'">'. $link .'</a>'; }
обращение идёт к одному и тому же сайту
нет не идет выборка из ссылки
|