Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 76

Оптимизировать код парсинга страниц. Используется SimpleHtmlDom

14.02.2014, 12:07. Показов 1772. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как оптимизировать подобное:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$url2=('http://cайт1/');
$table2 = array();
$data2 = file_get_html($url2, false, $context);
 
 foreach($data2->find('tr') as $row2) {
 
     $users2 = $row2->find('td',9)->plaintext;
 
     $table2[$users2] = $users2;
    
     }
 
$url=('http://сайт2/');
$table = array();
$data = file_get_html($url, false, $context);
 
 foreach($data->find('tr') as $row) {
 
     $users = $row->find('td',9)->plaintext;
 
     $table[$users] = $users;
    
     }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2014, 12:07
Ответы с готовыми решениями:

Как оптимизировать код, где используется много методов .Contains?
Здравствуйте! Есть задача поиска всех url'ов на каком то сайте и найти в них битые/небитые. Задачу решил с использованием Selenium...

Рабочий алгоритм парсинга веб страниц
Здравствуйте!!! Кто знает рабочий алгоритм парсинга веб страниц(с чего начать, нужно ли в файл записывать и тп)? Например мне надо...

Написать библиотеку отправки GET-запроса и парсинга страниц
Помогите с написанием длл которая будет отправлять гет запрос и парсить от туда весь код страницы а после запихивать его в "к...

4
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
14.02.2014, 13:57
Наверное, нужно сказать в чем конкретно просматривается проблема.
И написать чем вы пользуетесь для поиска в DOM.
Оптимизация по поиску - наверно, только пробовать разные инструменты и сравнить. Интересно, будет ли поиск с помощью обычных функций поиска в строке быстрее чем использовать такой специальный инструмент, тем более особо сложных запросов по поиску у вас в примере не показано (хотя так будет не столь гибко).
По скачиванию - сделать функцию-обертку над CURL, и с пустой опцией CURLOPT_ENCODING (если сайт может передавать страницы сжатыми - тогда качается гораздо быстрее).
В $table2[$users2] = $users2; записывать значение $users2 в ключ считаю излишним.
1
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 76
14.02.2014, 15:22  [ТС]
В моем варианте оптимизация состоит только в том, что б место двух
PHP
1
2
3
4
5
6
7
 foreach($data->find('tr') as $row) {
 
     $users = $row->find('td',9)->plaintext;
 
     $table[$users] = $users;
    
     }
этих блоков сделать один, который умеет парсить сайт1 и сайт2.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
14.02.2014, 15:47
Как-то так.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$urls = array();
$urls[]=('http://cайт1/');
$urls[]=('http://сайт2/');
$table = array();
foreach($urls as $key => $url){
 
     $data = file_get_html($url, false, $context);
 
     foreach($data->find('tr') as $row) {
 
        $table[$key][] = $row->find('td',9)->plaintext;
   
     }
}
Текста меньше, но по производительности прироста не будет.

Добавлено через 6 минут
Кстати, если мне не изменяет память, то когда я работал с SimpleHtmlDom последний раз то порой наблюдались проблемы с загрузкой страницы, и мне советовали модифицировать его чтобы он использовал CURL вместо file_get_contents, но тот проект я приостановил, так что так и не взялся переделать.
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.02.2014, 15:51
SimpleHtmlDom не принуждает использовать file_get_html. Используйте cURL, передавайте код через str_get_html. Но использование cURL не обязательно даст прирост по скорости.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2014, 15:51
Помогаю со студенческими работами здесь

Исправить код парсинга
Добрый день, помогите пожалуйста исправить код, выложенный здесь для получения серийного номера флешки. В нем парсят строку вида:...

Разобрать код парсинга
Здравствуйте, можете расписать каждую строчку кода Public Function Pars(ByRef strSource As String, ByRef strStart As String,...

Какой браузерный движок для отображения кода веб страниц используется в клиенте Steam?
Какой браузерный движок для отображения кода веб страниц используется в клиенте Steam?

Исправить код для парсинга страницы
В общем сори если тема уже есть, просто, появился у меня вопрос. Подскажите почему не работает. Тупо не определяет имя news, пробовал...

Исправить код для парсинга сайта
Здравствуйте! Извините, если я не в той ветке пишу. Не могу разобраться с библиотекой Beautiful Soup. Хочу спарсить сайт...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru