Форум → Программирование → PHP для идиотов → Расширения PHP → Как быстро и тихо спарсить каталог сайта?
Как быстро и тихо спарсить каталог сайта?
Страницы: ← Следующая страница →
-
Надо спарсить пару категорий одного сайта, но не для того, что бы спионерить инфу, а для того, что бы мониторить цены конкурентов.
Пробовал обычным cURL'ом, но либо у меня руки кривые, либо он действительно медленно работает (пока только на локалке пробовал 16 секунд 3 страницы).
Нашел этот магазин в яндекс маркете, значит у него есть волшебный yml/cvs/xls файлик со всем каталогом, но по какому адресу лежит, хер его знает.
Подкиньте советов, как выпрямить руки, или как найти волшебный файлик.Высокоуровневое абстрактное говно -
Дек. 1, 2014, 11 д.п., спустя 42 минуты 26 секунд
Он может где угодно лежать, посмотри robots.txt, может повезет.
Но вообще я бы не парсил сихронно, надо асинхронно парсить сайтик. Например через Scrapy (python). Суть в том, чтобы сделать одновркменно сотни запросов на страницы и коллбеками обрабатывать ответы, тогда не особо важно сколько генерирется страница
https://smappi.org/ - платформа по созданию API на все случаи жизни -
Дек. 1, 2014, 11:13 д.п., спустя 13 минут 34 секунды
Он может где угодно лежать, посмотри robots.txt, может повезет.
Там в первую очередь посмотрел. Уже была мысля найти мыло админа, ломануть каким-то раком и посмотреть в настройках маркета путь к файлу.Суть в том, чтобы сделать одновркменно сотни запросов на страницы…
Попробовал curl_multi, быстрее стало только на одну секунду. Может это только на локалке так медленно?Высокоуровневое абстрактное говно -
Дек. 1, 2014, 11:28 д.п., спустя 15 минут 4 секунды
Попробовал curl_multi, быстрее стало только на одну секунду. Может это только на локалке так медленно?
Я не знаю что такое curl_multi, но при асинхронном подходе ты должен ждать первые результаты "первые 16 секунд", а потом получать все остальные 100500 страниц непрерывно, без всяких задержек.
https://smappi.org/ - платформа по созданию API на все случаи жизни -
Дек. 1, 2014, 12:49 п.п., спустя 1 час 20 минут 16 секунд
о, топик с гениями1 подпишусь, пачитаю, новае узнаю
Сапожник без сапог -
Дек. 1, 2014, 12:57 п.п., спустя 8 минут 45 секунд
о, топик с гениями1 подпишусь, пачитаю, новае узнаю
@phpdude, многопоточный дудокурл ему не поможет?
https://smappi.org/ - платформа по созданию API на все случаи жизни -
Дек. 1, 2014, 1:01 п.п., спустя 3 минуты 29 секунд
о, топик с гениями1 подпишусь, пачитаю, новае узнаю
@phpdude, многопоточный дудокурл ему не поможет?
@adw0rd, ктоб ему его дал то?)
Сапожник без сапог -
Дек. 1, 2014, 1:02 п.п., спустя 1 минуту 39 секунд
@phpdude, дай :3Высокоуровневое абстрактное говно -
Дек. 1, 2014, 1:40 п.п., спустя 37 минут 42 секунды
Попробовал curl_multi, быстрее стало только на одну секунду. Может это только на локалке так медленно?
Я не знаю что такое curl_multi, но при асинхронном подходе ты должен ждать первые результаты "первые 16 секунд", а потом получать все остальные 100500 страниц непрерывно, без всяких задержек.
@adw0rd, видимо, он имеет ввиду это
PHP: curl_multi_init - Manual
php.net
-
Дек. 1, 2014, 1:52 п.п., спустя 11 минут 23 секунды
@Sinkler, да, я даже нагуглил, но всеравно не пытался даже понять как с ним работать) Я бы точно взял Scrapy он на Twisted. Я с ним уже работал, он хорошо справляется
Спустя 52 сек.
Думаю для человека знакомого с js проще написать все на node.js, архитектура как раз позволяет делать запросы и не ждать ответа, а обрабатывать все в коллбекахhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
Дек. 1, 2014, 1:54 п.п., спустя 2 минуты 16 секунд
@Stasovsky, отдебажь время обработки каждой страницы из тех трёх
-
Дек. 1, 2014, 2:01 п.п., спустя 7 минут 6 секунд
@Sinkler, сейчас 9 страниц за 6 секунд парсит. Каждый запрос в среднем 0.54 и последний больше секунды.Высокоуровневое абстрактное говно -
Дек. 1, 2014, 2:08 п.п., спустя 6 минут 55 секунд
@Stasovsky, запусти на линуксе, посмотри время. pcntl на винде точно не работает, про реализацию многопоточности в libcurl под виндой не знаю, но по твоим результатам они идут последовательно
-
Дек. 1, 2014, 2:10 п.п., спустя 2 минуты 35 секунд
@Sinkler, да я так и понял, что последовательно. Щас вообще перебил на HttpSocket XD
Время проверял на ремоуте, там, вроде убунта, или центос.Спустя 91 сек.
И я всё это делаю в рамках движка на кейке. Ну и node.js хезе как поставить))Высокоуровневое абстрактное говно -
Дек. 1, 2014, 2:20 п.п., спустя 9 минут 8 секунд
Думаю как поставить ноду можно найти в гугле за 2 секунды)
https://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!