Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
NikitaDen3
0 / 0 / 0
Регистрация: 23.03.2018
Сообщений: 11
1

Почему не работает парсинг сайта

18.04.2018, 20:01. Просмотров 185. Ответов 3
Метки нет (Все метки)

Вот мое задание
Возьмите любой Интернет-магазин, например, с ноутбуками.
Используя cURL, а также регулярные выражения, получите данные о 100 ноутбуках (скорее всего, придётся перемещаться по страницам на сайте). Необходимые данные: модель, цена, операционная система.
Сохраните все эти данные в текстовый файл.
Вот мой код
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    $ch = curl_init('https://www.dns-shop.ru/catalog/17a892f816404e77/noutbuki/?p=1&i=1&finalize=1');
    curl_setopt($ch , CURLOPT_RETURNTRANSFER , true);
    curl_setopt($ch , CURLOPT_NOBODY , false);
    curl_setopt($ch , CURLOPT_HEADER , true);
    curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");
    $result = curl_exec($ch);
    preg_match('#<a href="\/product\/">.*</a>#su' , $result , $matches);
    print_r($matches);
    curl_close($ch);
   // print_r($_SERVER);
    ?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
</body>
</html>
Почему моя регулярка не ищет ссылки они выглядят на сайте вот так <a href="/product/и дальше кучу букв "></a>,
но в масиве matches ни чего нет , а дальше я так понимаю надо сделать снова curl_init но уже по этим ссылкам и там найти нужную
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2018, 20:01
Ответы с готовыми решениями:

Парсинг dle сайта
Доброго времени суток, дело в том что есть некий сайт, он на dle, так вот...

Парсинг сайта сбербанка
Приветствую. Нужно спарсить курс валют который находится в виджете...

Snoopy, парсинг сайта
Здравствуйте. Есть сайт, с которым работает мое приложение. Раньше парсил,...

Парсинг сайта на поиск урл
Цель задачи создать фаил sitemap.xml Код нашел рабочий но обрабатывает одну...

Парсинг сайта с глубокой вложенностью
Есть сайт http://www.edu.ru/schools/catalog/ Каталог всех школ РФ по...

3
Рыжий Лис
Просто Лис
1188 / 511 / 344
Регистрация: 17.05.2012
Сообщений: 2,066
Записей в блоге: 8
19.04.2018, 06:49 2
Потому что не надо парсить html регулярками. Используйте библиотеку для построения dom-дерева, а там уже делайте селекты и выбирайте ссылки.
0
Marchac
Заблокирован
20.04.2018, 18:39 3
Я использую вот такой код
PHP
1
2
3
4
preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $result, $matches);
  $urls = $matches[1]; 
  for ($i = 0; $i < count($urls); $i++)
    echo $urls[$i]."<br />";
И получаю все ссылки
0
Рыжий Лис
Просто Лис
1188 / 511 / 344
Регистрация: 17.05.2012
Сообщений: 2,066
Записей в блоге: 8
20.04.2018, 19:09 4
Серьёзно, не надо регулярками парсить.
HTML5
1
<a href="/link?a=1&b=2#more,and,impotant,data">click</a>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2018, 19:09

Парсинг сайта через определенное время
Каким образом реализовать парсинг страницы через, допустим полчаса?

Парсинг новых обьявлений из определенной категории сайта
Есть категория с обьявлениями : https://999.md/category/real-estate Задача:...

Как сделать парсинг сайта (сформировать запросы)
Сразу замечу, что я лишь прошу помощи в формировании структуры кода, т.е как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru