- Регистрация
- 24.01.2019
- Сообщения
- 104
- Благодарностей
- 16
- Баллы
- 18
1. Имеем большой сайт страниц этак на 20млн, список страниц как таковых, нет, но есть каталог страниц, с которого может быть ссылок 20-100 на сами товары, которые нас интересуют.
2. Сайт за ClaudFlare, использую прокси от awmproxy (не реклама)
Список проксей подгружается на сервер каждые 15 минут, из него убираются те, которые уже не подходят (просят ввести капчу) и загружаются в шаблон в виде списка. Размер файла примерно 800кб
Шаблон забирает первую проксю из списка, если она нерабочая складывает ее в другой список, который тоже привязан к файлу.
3. Если все ок, и прокся рабочая - то мы получаем страницу каталога сайта,
это спискок, к которому привязан файл в котором лежат URLs каталога, этот файл размером примерно 5мб
Загружаем страницу каталога, находим через XPath ссылки, складываем их в список, уникализируем его.
4. Далее уже работаем с нужными нам ссылками товаров. Специфика такая, что в каталоге могут быть ссылки на товары, которые уже встречались на других страницах каталога, и дабы не парсить страницы по несколько раз мы организовали проверку таким образом: каждый урл имеет свой идентификатор (в урл есть часть ITEM_455534343646346)
число уникальное, и, на основе этого идентификатора, если мы получили данный файл с товаром, создаем в каталоге res_empty файл аля c:\res_empty\4\5\5\3\4343646346.txt
(сейчас в папке порядка 10млн файлов скопилось)
И в дальнейшем уже смотрим, если на новой страничке каталога мы имеем страницу ITEM_455534343646346 - то проверяем существование данного файла - если его нет, то страница парсится и складывается два файла, один с контентом, второй пустой.
Вот так вот вкратце.
Сервер у нас довольно мощный: 4х E5-4650 @ 2.70 Mhz (32 ядра), памяти 128GB, SSD винт на 500GB
Стоит серверная Windows Server 2016 Standard
НО
Как только я запускаю в 100 потоков парсер - сервер превращается в черепаху, просто невозможно окошко с проводником перетащить, я уже не говорю чтобы Project Maker открыть (он может открываться до 5 минут). Task Manager может секунд 20 показывать not responding
При этом Task Manager показывает загрузку проца на 6-10%, памяти на 20-25% (со временем использование памяти растет)
Что по софту - Zennoposter 5.27, 5.28, 5.28 Chrome - результат одинаков.
В настройках я устанавливаю Максимальное кол-во потоков - 250
Кол-во потоков в одном процессе - 1
Памяти каждому инстансу выделается по максимуму, 1гб.
В самом шаблоне указано, чтобы браузер не отображал содержимое, запускался в отдельном инстансе,
политики контента настроены по минимуму, чтобы только контент страницы получать, настроен так же браузер таким образом, чтобы к проксе было максимум 4 конекта с одного шаблона, ибо такая политика у awmproxy.
Скажите, что-то можно улучшить, работать на этом тазике одновременно с парсером - невозможно.
Запустить парсинг еще какого-то сайта одновременно - это значит вообще потерять контроль над машиной.
Для тех, кто хочет помочь и думает что проблема в шаблоне - могу скинуть шаблон в личку...
Шаблон писался впервые, так что думаю мог сам что-то накосячить, вот и прошу помощи знающих.
У меня есть подозрение на дисковые операции, с этими всеми проверками на существование, в сто потоков, с другой стороны SDD - вроде как не должно быть такого, знатоки откликнитесь. Буду очень признателен, вплоть до $$
2. Сайт за ClaudFlare, использую прокси от awmproxy (не реклама)
Список проксей подгружается на сервер каждые 15 минут, из него убираются те, которые уже не подходят (просят ввести капчу) и загружаются в шаблон в виде списка. Размер файла примерно 800кб
Шаблон забирает первую проксю из списка, если она нерабочая складывает ее в другой список, который тоже привязан к файлу.
3. Если все ок, и прокся рабочая - то мы получаем страницу каталога сайта,
это спискок, к которому привязан файл в котором лежат URLs каталога, этот файл размером примерно 5мб
Загружаем страницу каталога, находим через XPath ссылки, складываем их в список, уникализируем его.
4. Далее уже работаем с нужными нам ссылками товаров. Специфика такая, что в каталоге могут быть ссылки на товары, которые уже встречались на других страницах каталога, и дабы не парсить страницы по несколько раз мы организовали проверку таким образом: каждый урл имеет свой идентификатор (в урл есть часть ITEM_455534343646346)
число уникальное, и, на основе этого идентификатора, если мы получили данный файл с товаром, создаем в каталоге res_empty файл аля c:\res_empty\4\5\5\3\4343646346.txt
(сейчас в папке порядка 10млн файлов скопилось)
И в дальнейшем уже смотрим, если на новой страничке каталога мы имеем страницу ITEM_455534343646346 - то проверяем существование данного файла - если его нет, то страница парсится и складывается два файла, один с контентом, второй пустой.
Вот так вот вкратце.
Сервер у нас довольно мощный: 4х E5-4650 @ 2.70 Mhz (32 ядра), памяти 128GB, SSD винт на 500GB
Стоит серверная Windows Server 2016 Standard
НО
Как только я запускаю в 100 потоков парсер - сервер превращается в черепаху, просто невозможно окошко с проводником перетащить, я уже не говорю чтобы Project Maker открыть (он может открываться до 5 минут). Task Manager может секунд 20 показывать not responding
При этом Task Manager показывает загрузку проца на 6-10%, памяти на 20-25% (со временем использование памяти растет)
Что по софту - Zennoposter 5.27, 5.28, 5.28 Chrome - результат одинаков.
В настройках я устанавливаю Максимальное кол-во потоков - 250
Кол-во потоков в одном процессе - 1
Памяти каждому инстансу выделается по максимуму, 1гб.
В самом шаблоне указано, чтобы браузер не отображал содержимое, запускался в отдельном инстансе,
политики контента настроены по минимуму, чтобы только контент страницы получать, настроен так же браузер таким образом, чтобы к проксе было максимум 4 конекта с одного шаблона, ибо такая политика у awmproxy.
Скажите, что-то можно улучшить, работать на этом тазике одновременно с парсером - невозможно.
Запустить парсинг еще какого-то сайта одновременно - это значит вообще потерять контроль над машиной.
Для тех, кто хочет помочь и думает что проблема в шаблоне - могу скинуть шаблон в личку...
Шаблон писался впервые, так что думаю мог сам что-то накосячить, вот и прошу помощи знающих.
У меня есть подозрение на дисковые операции, с этими всеми проверками на существование, в сто потоков, с другой стороны SDD - вроде как не должно быть такого, знатоки откликнитесь. Буду очень признателен, вплоть до $$
Вложения
-
520,1 КБ Просмотры: 399
Последнее редактирование: