Я хотел бы знать, возможно ли, чтобы программа Ruby обладала несколькими IP-адресами? Я пытаюсь загрузить много данных с сайта, но он очень медленный, только с одним соединением за раз.
Я намерен многопоточную мою программу с каждым потоком, используя свой собственный IP-адрес, но я не знаю, возможно ли это в первую очередь, любая помощь или подсказки были бы весьма признательны.
ruby scrapp с несколькими IP-адресами
ответ
Возможно, что машина или программа имеют несколько IP-адресов. Вы можете даже иметь несколько сетевых адаптеров и привязывать каждый из них к различным физическим соединениям.
Однако, он может стать действительно волосатым для поддержания. Задача для этого частично заключается в коде, частично в обслуживании системы, а частично в сетях, необходимых для этого.
Лучшим подходом, который вы можете предпринять, является разработка вашей программы, чтобы она могла работать распределенной. Таким образом, вы можете синхронизировать несколько копий и выполнять работу параллельно. Затем вы можете масштабировать его по горизонтали (создавать больше копий) по мере необходимости, а также по разным машинам и соединениям, если это необходимо.
EDIT: Вы упомянули, что вы не можете масштабировать по горизонтали и что вы предпочитаете использовать несколько соединений с одного и того же компьютера.
Очень вероятно, что для этого вам придется немного поменьше в сетевом стеке, развивая соединение через сокеты, чтобы использовать определенные сетевые интерфейсы.
Отъезд an introduction to Ruby sockets.
Кроме того, проверить эти вопросы, связанные:
Я использую несколько машин, но я сталкиваюсь с другими проблемами: они не имеют одинаковых спецификаций вообще (у них нет денег, чтобы инвестировать в них больше). Поэтому наилучшим доступным решением является 1 программа с несколькими IP-адресами. подскажите, как подойти к проблеме? –
Если это медленное соединение, вам нужно добавить дополнительные подключения. Я говорю о независимых сетевых подключениях, а не только сетевых адаптерах. У меня больше нет информации, чтобы добавить прямо сейчас, извините. Я увижу позже, если есть драгоценный камень или что-то, что можно использовать для контроля соединений http на низком уровне. – Alpha
@MatthieuRaynauddeFitte Я обновил свой ответ. Надеюсь, это поможет! – Alpha
- 1. Как scrapp данные из https://www.fiverr.com/
- 2. Как scrapp данные из Ajax или Json
- 3. autospec с несколькими версиями Ruby
- 4. Ruby recaptcha с несколькими формами?
- 5. Работа с несколькими процессами в Ruby
- 6. Работа с несколькими серверами Ruby on Rails
- 7. ruby переименовать файл с несколькими строковыми формами
- 8. PHP, Python, приложение Ruby с несколькими RDBMS
- 9. Ruby UDP-сервер с несколькими клиентами?
- 10. Ruby on reils модель с несколькими родителями
- 11. Ruby Cucumber работает с несколькими файлами функций
- 12. Использование «Выход» с несколькими методами в Ruby,
- 13. Способность Ruby CanCan с несколькими предметами (классами)?
- 14. Управление Ruby On Rails с несколькими регионами
- 15. Управление несколькими версиями Ruby Gem
- 16. Ruby on rails: проблема с созданием объекта с несколькими ассоциациями
- 17. Как читать файл с несколькими строками за раз с Ruby?
- 18. Оператор case Ruby с несколькими переменными с использованием массива
- 19. Производительность Ruby с несколькими потоками по сравнению с одной нитью
- 20. Ruby с использованием запросов с несколькими опциями в разделе WHERE
- 21. Ruby on Rails - Модели с несколькими ассоциациями «многие-ко-многим»
- 22. Как искать запрос с несколькими словами, используя Ruby HTTParty?
- 23. Создание программы Ruby Main (утилита командной строки) с несколькими файлами
- 24. Как добавить сообщение Delicious с несколькими тегами в ruby
- 25. Проверить строки даты в Ruby с несколькими принятыми форматами?
- 26. Как метод рефакторинга с несколькими булевыми переменными в Ruby
- 27. Как создать совместную среду с несколькими приложениями Ruby on Rails
- 28. Создать хэш с несколькими значениями, Ruby и Mysql2 gem
- 29. Elasticsearch DSL с несколькими запросами multi_match в ruby
- 30. Ruby on rails to_param с несколькими полями для SEO
1 ф на одну машину, единственный способ эффективно сделать это было бы иметь несколько машин, подключиться к прокси или vpn и запустить ваш процесс через это. –
У меня не может быть более одной машины, поэтому мне нужно использовать несколько IP-адресов. Можно ли использовать vpn в потоке программы? –
Возможно, было бы лучше, если бы вы разбили свою программу на несколько компонентов, 1 мастер, который будет программно подключен к vpn, 2 - компонент, который сбрасывает данные. Вам нужно будет искать vpn с api todo так. Также вы можете протестировать соединение, чтобы выяснить ограничение скорости на веб-сайте, и вы должны использовать случайную переменную для изменения времени вызова, потому что некоторые веб-сайты ищут сжатые вызовы. В качестве альтернативы вы можете попытаться написать свой скребок с помощью документов Google в зависимости от данных. –