Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 72
1

Парсинг сайта

27.05.2017, 17:22. Показов 435. Ответов 0
Метки php (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Дали задание спарсить сайт https://itp.ne.jp/genre_dir/95... r=1&num=20 .
Парсинг сайта

Не занимался ни чем подобным раньше, поэтому возникли трудности. Использовал curl и библиотеку Simple HTML DOM.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
require_once('simple_html_dom.php');
 
function curl_get($url, $referer = 'https://www.google.ru/') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    $out = curl_exec($ch);  
    curl_close($ch);
    return $out;
}
 
 
$html = curl_get('https://itp.ne.jp/genre_dir/9570/pg/1/?sr=1&ngr=1&num=20');
$dom = str_get_html($html);
$companies = $dom->find('.highlightedResultsBox section');
 
$res = '';
$res .= '<table style="">
            <thead>
                <tr>
                <th scope="row">№</th>
                <th>Имя компании</th>
                <th>Адрес</th>
                <th>Телефон</th>
                <th>Email</th>
                </tr>
            </thead>
            <tbody>';
$i = 1;
 
foreach ($companies as $company) {
 
    $name = $company->find('h4 a', 0);
    $address = $company->find('p', 1);
    $phone = $company->find('p', 2);
    $email = $company->find('p a', 3);
 
    $data['name'] = $name->plaintext;
    $data['address'] = $address->plaintext;
    $data['phone'] = $phone->plaintext;
    $data['email'] = $email->plaintext;
 
    $attr[] = $email->attr;
        
    foreach($attr as $item){
        if (!empty($item['onclick']) && isset($item['onclick'])) {
            $data['email'] = $item['onclick'];
        }
        else break;
    }
 
$res .= '<tr>';
    $res .= '<td>' . $i . '</td>';
    $res .= '<td>' . $data['name'] . '</td>';
    $res .= '<td>' . $data['address'] . '</td>';
    $res .= '<td>' . $data['phone'] . '</td>';
    $res .= '<td>' . $data['email'] . '</td>';
    $res .= '</tr>';
    $i++;
}
$res .= '</tbody></table>';
 
echo $res;
Вот что выдает
Парсинг сайта

Выводится только два элемента и почему то каждый раз разные данные.
Подскажите, пожалуйста, что не так делаю. Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2017, 17:22
Ответы с готовыми решениями:

Парсинг сайта
Здравствуйте уважаемые программисты, у меня задача распарсить сайт...

Парсинг с сайта
Ребят. Набрасал кусок. выдает много ошибок. Работает не коректно. Подсобите. вот код: ...

Парсинг сайта
Помогите разобраться. Допустим, если сайт, я &quot;парсю&quot; его описание, в описании длинный текст,...

Парсинг сайта
Всем привет! Никак не могу найти хорошего описания &quot;с чего начать&quot; при написании парсера (авито...

0
27.05.2017, 17:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2017, 17:22
Помогаю со студенческими работами здесь

Парсинг веб-сайта
Вы уж меня извините, если вопрос мой покажется вам абсурдным или чрезвычайно глупым. Только...

Парсинг ASP сайта
Ситуация следующая: необходимо получать и информацию с источника, реализованного средствами...

Парсинг сайта на php
Возможно ли это? Кому не трудно приведите например: cyberforum.ru. с любым тегом div

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru