1 | |
Скачивание из интернета18.06.2012, 21:12. Показов 6360. Ответов 16
Метки нет (Все метки)
0
|
18.06.2012, 21:12 | |
Ответы с готовыми решениями:
16
Скачивание из Интернета Скачивание из интернета Скачивание файла из интернета Скачивание файла из интернета |
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,421
|
||||||
19.06.2012, 13:25 | 2 | |||||
через сокеты. через GET запрос.
Добавлено через 12 минут примерно вот так (пример для Windows с возможностью работать через proxy, переделывается для Linux достаточно быстро):
1
|
19.06.2012, 13:48 | 3 |
Если концепция программы позволяет, то можно запустить программу wget, а по завершении забрать файл, который был скачан. Вариант с wget'ом удобен тем, что wget гораздо качественне отработает всякие "плохие" случаи типа редиректа на другой адрес, чем на коленках написанная самоделка.
Наверняка для этих дел есть нормальные библиотеки
0
|
19.06.2012, 16:00 [ТС] | 4 |
Уже нашел с boost-том пример https://www.cyberforum.ru/cpp-... 29576.html
0
|
87 / 87 / 1
Регистрация: 19.06.2012
Сообщений: 245
|
|
19.06.2012, 22:03 | 5 |
Пытаться ковырять HTTP самому, сокетами - фиговая идея. Ответ может быть всячески заэнкожен, загзиплен и на худой конец вместо него может прийти какойнибудь редирект
0
|
19.06.2012, 22:35 [ТС] | 6 |
И... ?
И что вы предлагаете? Как иначе? А редирект можно обработать... или я ошибаюсь ? Добавлено через 2 минуты Если б я умел переделывать, я б вообще такие вопросы не ставил...
0
|
19.06.2012, 22:46 | 7 |
Обработать можно всё, что угодно. Но для этого надо иметь на руках описание протокола HTTP и реализовать все заложенные в него возможности. Тогда у тебя будет 100% уверенность в том, что с любого сайта ты сможешь адекватно скачать любую страницу. Другая возможность - самому не реализовывать, а взять чужой код, в котором уже всё реализовано (типа boost'а, но хз насколько полноценно там всё поддержано). Третья возможность - написать что-то самому, как это предложено в посте #2, убедиться, что для скачивания с конкретно нужной страницы этого достаточно и больше не париться. Но при этом надо понимать, что для работы с другой страницей возможно что-то пидётся доработать. Но при этом не заниматься дикой помесью кодов на Си и Си++, технологий для винды и юникса
0
|
87 / 87 / 1
Регистрация: 19.06.2012
Сообщений: 245
|
|
19.06.2012, 23:43 | 8 |
1
|
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,421
|
|
20.06.2012, 09:26 | 9 |
Не по теме: где размер отличающий самоделку от продукта? т.е. wget уже продукт, boost - промежуточное звено между самоделкой и продуктом, а простейший код на сокетах - это чистокровная самоделка)? если человек свой броузер пишет, то обо всем этом ему так или иначе придется париться. а если цель - конкретная страница, то приведенный код на 99% даст то что нужно.
0
|
20.06.2012, 11:20 | 10 |
Про размер не понял. Самоделка - это то, что не учитывает всех возможностей. Конкретно твоя программа будет работать тольуо в том случае, если сервер напрямую тебе выдаст страницу (без таймаута, без сжатия, без редиректов и прочего). Именно это отличает самоделку от продукта: продукт будет работать всегда, самоделка - в некоторых рамках, ограниченных знаниями или желаниями автора
Помесь си и си++ очевидна. То, что это код под винду в теме про линукс - тоже очевидно. Однако каюсь, не заметил, что ты прямо написал, что этот код под винду и надо переделывать под линукс.
0
|
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,421
|
|
20.06.2012, 14:22 | 11 |
Не по теме: в некоторых случаях использование функций printf/scanf в программе "знающей" о существовании потоковых объектов обосновано (религиозные соображения не имеют отношения к тому будет решена задача быстро, наглядно и правильно или невыразительно и с кучей ошибок зато в рамках общего подхода). тем более, что они не осуществляют ввод/вывод на одно устройство. тем более, что данный код не является образцовым чистовиком, а представляет из себя вырезку из нескольких мест скомпонованную по мере возможности для того что бы помочь TC. всех возможностей учесть нельзя) если удариться в рассмотрение наихудшего варианта, то решение будет найдено либо спустя продолжительное время либо не найдено вообще. при таком подходе - самоделка - это все что нас окружает. Не по теме: **мега офф**модераторам не читать**никогда не видел большей самоделки чем линукс)
1
|
20.06.2012, 23:08 | 12 |
Можно. Правда не всегда получается сделать без ошибок, но можно.
Если есть стандартная реализация и если нет технических проблем для её использования, лучше использовать стандартную реализацию. В тоге у тебя больше времени уйдёт на то, чтобы присать свою программу и меньше времени уйдёт на экспериментальное выяснение собственных косяков в самодельной реализации. Особенно если нет чёткого представления о реализуемом протоколе
0
|
21.06.2012, 02:22 [ТС] | 15 | ||||||||||||||||||||
Пробую библиотеку curl - кстати кросплатформена
Установил так:
Код
Ошибка! Couldn't resolve proxy 'proxy' Добавлено через 12 минут http://curl.haxx.se/libcurl/c/ Добавлено через 1 час 37 минут Ага вот кое что под добавил (сохраняет в файл)
http://wapinet.ru/textbook/CURL_in_PHP.htm http://parsing-and-i.blogspot.... steps.html
0
|
21.06.2012, 10:03 | 16 |
Потому что прокси-сервер у тебя кривой задан был
Когда докопаешься до истины - можно и в блог выложить пример. Потому как основной массе людей, готовых самостоятельно разбираться, как правило достаточно одного примера, чтобы самостоятельно двигаться дальше Добавлено через 2 минуты Ну и для полноты картины я бы сначала показал код на чистом Си, а потом уже привинтил Си++-ные string'и. Сама технология передачи указателей на объекты Си++ через указатели функций библиотеки на Си для начинающих может показаться далеко не очевидной
0
|
0 / 0 / 0
Регистрация: 30.04.2020
Сообщений: 3
|
|
18.04.2024, 11:58 | 17 |
Добрый день!
Как в библиотеке задать ключ "-d" с параметрами?
0
|
18.04.2024, 11:58 | |
18.04.2024, 11:58 | |
Помогаю со студенческими работами здесь
17
Скачивание файл из интернета Скачивание файла из интернета Скачивание файлов из интернета Скачивание файла из интернета Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|