Как скачать excel файл с сайта

Хитрости »

2 Декабрь 2016              40481 просмотров


Как скачать файл из интернета по ссылке

Вся суть статьи уже в заголовке. Возникает порой необходимость скачивания файлов из интернета только на основании ссылки. Например, это какие-то постоянно меняющиеся данные или автоматически генерируемая другим кодом ссылка. Или еще более усугубленный вариант — строк 100 со ссылками на файлы, которые надо скачать…Вот уж радости руками по каждой клацать :)
Поэтому выкладываю решение, которое в большинстве случае поможет при помощи Visual Basic for Applications скачать файл на основании ссылки URL:

'---------------------------------------------------------------------------------------
' File   : mDownloadFileFromURL
' Purpose: код позволяет скачивать файлы из интернета по указанной ссылке
'---------------------------------------------------------------------------------------
Option Explicit
 
'объявление функции API - URLDownloadToFile
'   работает на любых ПК под управлением ОС Windows
'   на MAC код работать не будет
#If Win64 Then 'для операционных систем с 64-разрядной архитектурой
    Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
            (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
             ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
#Else
    #If VBA7 Then 'для любых операционных систем с офисом 2010 и выше
        Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
            (ByVal pCaller As LongPtr, ByVal szURL As String, ByVal szFileName As String, _
                ByVal dwReserved As Long, ByVal lpfnCB As LongPtr) As LongPtr
    #Else 'для 32-разрядных операционных систем
        Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                                        (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
                                        ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    #End If
#End If
'переменная для хранения пути к папке
Dim sFilePath As String
 
Function CallDownload(sFileURL As String, sFileName As String)
'   sFileURL  - ссылка URL для скачивания файла
'   sFileName - имя файла с расширением, которое будет присвоено после скачивания
 
    Dim h
    If sFilePath = "" Then
        'диалоговое окно выбора папки
        'подробнее: http://www.excel-vba.ru/chto-umeet-excel/dialogovoe-okno-vybora-fajlovpapki/
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = False Then
                Exit Function
            End If
            sFilePath = .SelectedItems(1)
        End With
    End If
 
    If Right(sFilePath, 1) <> "" Then sFilePath = sFilePath & ""
    'проверяем есть ли файл с таким же именем в выбранной папке
    If Dir(sFilePath & sFileName, 16) = "" Then
        'файла нет - скачиваем
        h = DownloadFileAPI(sFileURL, sFilePath & sFileName)
    Else
        'файл есть - запрос на перезапись
        If MsgBox("Этот файл уже существует в папке: " & sFilePath & vbNewLine & "Перезаписать?", vbYesNo, "www.excel-vba.ru") = vbYes Then
            'если существующий файл открыт - невозможно его перезаписать, показываем инф.окно
            'отменяем загрузку
            If IsBookOpen(sFileName) Then
                MsgBox "Невозможно сохранить файл в указанную папку, т.к. она уже содержит файл '" & sFileName & "' и этот файл открыт." & _
                    vbNewLine & "Закройте открытый файл и повторите попытку.", vbCritical, "www.excel-vba.ru"
            Else
                h = DownloadFileAPI(sFileURL, sFilePath & sFileName)
            End If
        End If
    End If
    CallDownload = h
End Function
 
'функция скачивания файла в выбранную папку
Function DownloadFileAPI(sFileURL, ToPathName)
'   sFileURL   - ссылка URL для скачивания файла
'   ToPathName - полный путь с именем файла для сохранения
 
    Dim h
    Dim sFilePath As String
    Dim sFileName As String
    'вызов функции API для непосредственно скачивания
    h = (URLDownloadToFile(0, sFileURL, ToPathName, 0, 0) = 0)
    'если h = False - файл не удалось скачать, показываем инф.окно
    If h = False Then
        MsgBox "Невозможно скачать файл." & vbNewLine & _
                "Возможно, у Вас нет прав на создание файлов в выбранной директории." & vbNewLine & _
                "Попробуйте выбрать другую папку для сохранения", vbInformation, "www.excel-vba.ru"
                Exit Function
    Else 'файл успешно скачан
            sFileName = Dir(ToPathName, 16)
            sFilePath = Replace(ToPathName, sFileName, "")
            If MsgBox("Файл сохранен в папку: " & sFilePath & _
                              vbNewLine & "Открыть файл сейчас?", vbYesNo, "www.excel-vba.ru") = vbYes Then
                If IsBookOpen(sFileName) Then
                    MsgBox "Файл с именем '" & sFileName & "' уже открыт. Закройте открытый файл и повторите попытку.", vbCritical, "www.excel-vba.ru"
                Else
                    Workbooks.Open ToPathName
                End If
            End If
    End If
    DownloadFileAPI = h
End Function
'Функция проверки - открыта ли книга с заданным именем
'подробнее:
'        http://www.excel-vba.ru/chto-umeet-excel/kak-proverit-otkryta-li-kniga/
Function IsBookOpen(wbName As String) As Boolean
    Dim wbBook As Workbook
    For Each wbBook In Workbooks
        If Windows(wbBook.Name).Visible Then
            If wbBook.Name = wbName Then IsBookOpen = True: Exit For
        End If
    Next wbBook
End Function

Код необходимо скопировать и вставить в книгу в стандартный модуль. Макросы должны быть разрешены.

Основная функция, отвечающая за непосредственно скачивание — это функция API(Application Programming Interface) URLDownloadToFile. Она объявлена в самом верху кода. Там есть страшные директивы вроде #If Win64 Then. Это особые директивы, которые работают даже вне процедур. Поэтому не надо удивляться, что они вне всяких Sub и тем более не надо эти Sub-ы добавлять. При этом так же не надо удивляться, если какие-то из строк внутри этих директив будут подсвечены компилятором VBA красным шрифтом. На функциональность это не повлияет.

Вызов скачивания файла происходит обычным обращением к функции CallDownload. Например, есть ссылка для скачивания: http://www.excel-vba.ru/files/book.xls. И сохранить надо под именем «Книга1.xls». Вызываем функцию скачивания файла:

Sub DownloadFile()
    Call CallDownload("http://www.excel-vba.ru/files/book.xls", "Книга1.xls") 'вызываем скачивание файла
End Sub

Функция сама запросит папку для сохранения файла и после скачивания предложит открыть этот файл. Если такой файл уже есть — будет предложено его перезаписать.
К статье приложен файл, в котором код чуть расширен — он позволяет скачивать файлы сразу из множества ячеек, проставляя при этом признак — скачан файл или нет. И если сразу весь список обработать не получилось и какие-то файлы остались не скачанные(например, имена совпадали, а заменять файлы не надо было), то в этом случае можно будет повторно запустить код и скачиваться будут лишь те, у которых статус не является «Скачан!».
Так же т.к. ячеек много, перед скачиванием файлов будет выбор — запрашивать ли открытие файлов после скачивания или нет. Если открывать не надо, следует ответить Нет. Тогда файлы просто будут скачаны в указанную папку. Однако, если в этой папке будут расположены файлы с идентичными именами — запрос на перезапись все же появится, при этом для каждого файла. Если подобный запрос так же мешает, то надо этот блок:

    'проверяем есть ли файл с таким же именем в выбранной папке
    If Dir(sFilePath & sFileName, 16) = "" Then
        'файла нет - скачиваем
        h = DownloadFileAPI(sFileURL, sFilePath & sFileName)
    Else
        'файл есть - запрос на перезапись
        If MsgBox("Этот файл уже существует в папке: " & sFilePath & vbNewLine & "Перезаписать?", vbYesNo, "www.excel-vba.ru") = vbYes Then
            'если существующий файл открыт - невозможно его перезаписать, показываем инф.окно
            'отменяем загрузку
            If IsBookOpen(sFileName) Then
                MsgBox "Невозможно сохранить файл в указанную папку, т.к. она уже содержит файл '" & sFileName & "' и этот файл открыт." & _
                    vbNewLine & "Закройте открытый файл и повторите попытку.", vbCritical, "www.excel-vba.ru"
            Else
                h = DownloadFileAPI(sFileURL, sFilePath & sFileName)
            End If
        End If
    End If

заменить на всего одну строку:

h = DownloadFileAPI(sFileURL, sFilePath & sFileName)

Но при этом надо помнить — что при этом можно потерять какие-то важные файлы. Поэтому подобные вещи вы делаете на свой страх и риск.

Однако следует помнить одну вещь: не все сайты вот так запросто разрешают скачивать с них файлы, тем более пачками. Особенно это актуально для всякого рода форексов и иже с ними. Возможно, получится скачать один, два, три — десять файлов. Но всегда может случиться так, что сайт просто заблокирует ваш IP до конца дня, т.к. на сайте установлено ограничение на автоматизированное обращение извне. При этом для разных сайтов решение данной проблемы может быть различным и не всегда решаемым

Скачать файл

  Tips_Macro_DownloadFileFromURL.xls (64,0 KiB, 3 838 скачиваний)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Главная » Макросы и программы по категориям

Программы и макросы для скачивания файлов из интернета, получение данных с веб-страниц, загрузка с сайтов

Обратите внимание на универсальное решение для импорта данных с сайтов в Excel (парсинг сайтов)
Надстройка для парсинга сайтов

  • Парсер сайтов и файлов (парсинг данных с сайта в Excel)

    Структура программы «Парсер сайтов»

    Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.
    Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными,…

  • Надстройка для вставки картинок (изображений) в Excel

    Надстройка PastePictures для MS Excel: общие сведения

    Предназначение программы: вставка изображений в таблицу Excel, поиск картинок в папке или в Google, экспорт картинок из таблицы в папку.
    Основные функции программы:

    вставка фото из папки (поиск по имени файла)
    вставка картинок по ссылкам из таблицы
    поиск изображений в гугл по данным с листа Excel
    экспорт изображений с листа в файлы…

  • Загрузка изображений из интернета по ссылкам в одну папку

    Загрузка файлов (изображений) из интернета


    Макрос предназначен для загрузки изображений (или любых других файлов) из интернета, и сохранения скачанных файлов в одну папку.

    Исходные данные для работы макроса:

    таблица, в которой содержатся по меньшей мере 2 столбца — один с гиперссылками, второй — с именами файлов.

    Особенности макроса:

    создаваемым файлам присваиваются имена из выбранного столбца листа Excel

    макрос корректно…

  • Скачать файл из интернета без использования WinAPI

    Часто требуется макросом скачать некий файл из интернета.
    Обычно в этом помогает WinAPI-функция URLDownloadToFile, но есть также возможность загрузить файл без её использования:
    Чем чревато использование функции URLDownloadToFile — по сути, ничем, кроме как необходимостью прописывать её в 2 вариантах, для обеспечения совместимости с 64-битной Windows
    #If VBA7 Then ‘ Office 2010-2013…

  • Загрузка картинок из интернета по ссылкам, и сохранение их в отдельные папки

    Вид исходный таблицы со ссылками на картинки в интернете

    Данный макрос перебирает все строки на листе, и для каждой строки скачивает из интернета картинки, ссылки на которые присутствуют в этой строке (начиная с 3 столбца)
    В процессе загрузки изображений из интернета отображается 2-уровневый прогресс-бар, на котором можно видеть текущее состояние процесса.

    Если вам требуется вставлять много изображений на лист Excel, — то вам поможет надстройка,…

  • Программа формирования прайс-листов для каталога Onliner.by

    Форма подбора соответствия для модели ноутбука


    Программа предназначена для формирования прайс-листов на ноутбуки с соответствии с требованиями интернет-каталога Onliner.by

    Основные функции программы:

    (учитываются цены фирм-конкурентов, цены onliner.by и надбавка фирмы)

    загрузка каталога ноутбуков (названия, характеристики, цены) с сайта onliner.by в файл Excel, и обновление этого каталога

    назначение соответствий моделей…

  • Работа с файлами Excel через FTP (отправка файлов, таблиц и изображений на хостинг)

    Назначение программы:

    Выгрузка файлов Excel на сайт (хостинг) по протоколу FTP

    облегчение процесса редактирования файлов Excel, расположенных на сайте (доступных через FTP)

    автоматизация экспорта таблиц Excel на страницы сайтов под управлением CMS Drupal

    формирование изображений формате JPG из диапазона ячеек листа Excel — нажатием одной кнопки

     
    Программа представляет собой…

  • Скачивание файла с сайта с авторизацией

    Пример макроса для скачивания файла с авторизацией.
    Для его работы, надо подключить библиотеку Microsoft WinHTTP Services (version 5.1.) в меню Tools — References
    Сначала выполняется POST-запрос для авторизации,
    потом GET-запрос для скачивания файла
    Sub DownloadFile_Auth()
     
    loginURL$ = «http://www.mtkglobus.ru/info/account/»
    csvURL$ = «http://www.mtkglobus.ru/info/…

  • Макрос проверки доступности веб-ресурса


    Данная функция позволяет проверить, доступен ли тот или иной веб-ресурс с вашего компьютера, и получить код состояния HTTP
    Как известно, при переходе по ссылке (URL), веб-сервер возвращает код состояния HTTP.
    Наиболее популярный коды ответа веб-сервера: (перечень всех кодов состояния можно посмотреть в Википедии)

    200 OK («хорошо»)

    403 Forbidden («запрещено…

  • Автоматическое обновление книг и надстроек Excel

    Форма настроек программы, выбора устанавливаемых обновлений, активации надстройки


    Программа предназначена для реализации возможности автоматического и ручного обновления надстроек Excel, а также разграничения доступа и регистрации (активации) программного продукта.

    Особенности данного решения:

    публикация обновления программы через FTP нажатием одной кнопки

    автоматический поиск обновлений на сервере при запуске файла

    2 режима автообновления — установка любых…

  • Наружная реклама. Адресная программа. Рекламные щиты

    Скриншот листа коммерческого предложения - описание, фото и карта рекламной конструкции


    Программа предназначена для формирования коммерческих предложений по наружной рекламе.
    В качестве исходных данных выступает файл Excel со списком рекламных объектов.

    Список объектов должен содержать следующую информацию (в отдельных столбцах):

    адрес рекламной конструкции (щита)

    сторона рекламного щита или перетяжки (А, Б, В, и т.п.)

    ссылки на фото и карту рекламной конструкции
    (…

  • Авторизация на сайте atsenergo.ru

    Данный макрос выполняет 2 HTTP запроса (GET и POST) для авторизации на сайте atsenergo.ru
    В случае успешной авторизации, функция возвращает идентификатор сессии,
    который используется в дальнейших запросах для скачивания файлов.
    Макрос представляется сайту браузером Google Chrome
    Чтобы код сработал, надо задать правильные логин-пароль
    Макрос опубликован в качестве примера использования объекта…

Перейти к содержимому

Если вы обладаете достаточным количеством времени и ресурсов перенести данные с сайта в таблицу «Excel» можно в «ручном режиме». Тот случай, когда таблица на сайте выделяется курсором мыши, копируется и вставляется в файл «Эксель».   Естественно, этот способ долог и неудобен.

Я хочу рассказать Вам о другом, автоматизированном способе переноса данных с сайта в программу «Excel». Этот способ позволяет настроить процесс импорта обновленных актуальных данных с сайта прямо в таблицу одним нажатием кнопки мыши.

Для автоматизации импорта данных в «Эксель» из интернета потребуется «Excel» версии 2013 и выше, а так же надстройка Power Query.

Последовательность настройки скачивания данных:

Порядок действий для импорта таблицы из интернет-сайта в таблицу Excel.

Программа Excel соединится с сайтом, обнаружит все опубликованные на странице сайта таблицы и предложит Вам выбрать, какую таблицу загрузить с сайта в Ваш документ Excel.

  • Шаг 5. Выбрать нужную таблицу из предложенного списка и нажать «Правка» или «Загрузить»Выбор таблицы для загрузки из интернета

Если нажать «Загрузить», таблица будет импортирована целиком. В режиме правки можно редактировать вид загружаемой таблицы, выбирать нужные столбцы и т.д.

Результат скачивания таблицы в Excel

Результат скачивания таблицы в Excel

I’ve been spending the last few hours trying to figure out how to save a file onto the computer using VBA. The code template below that I found on another forum seems promising, except when I go to the desktop to access it, the .csv file has what looks like the page’s source code instead of the actual file I want. This may be because when I go to the URL, it doesn’t automatically download the file; rather, I am asked to save the file to a certain location (since I don’t know the path name of the uploaded file on the site).
Is there any way to alter this code to accommodate this, or will I have to use a different code entirely?

Sub Test()
Dim FileNum As Long
Dim FileData() As Byte
Dim MyFile As String
Dim WHTTP As Object

On Error Resume Next
    Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
    If Err.Number <> 0 Then
        Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
    End If
On Error GoTo 0


MyFile = "MY_URL_HERE"

WHTTP.Open "GET", MyFile, False
WHTTP.send
FileData = WHTTP.responseBody
Set WHTTP = Nothing

If Dir("C:UsersBLAHBLAHDesktop", vbDirectory) = Empty Then MkDir "C:UsersBLAHBLAHDesktop"

FileNum = FreeFile
Open "C:UsersBLAHBLAHDesktopmemberdatabase.csv" For Binary Access Write As #FileNum
    Put #FileNum, 1, FileData
Close #FileNum

End Sub

Cross posts:
http://www.ozgrid.com/forum/showthread.php?t=178884
http://www.excelforum.com/excel-programming-vba-macros/925352-vba-go-to-website-and-download-file-from-save-prompt.html

shA.t's user avatar

shA.t

16.4k5 gold badges53 silver badges111 bronze badges

asked May 23, 2013 at 1:35

user2370064's user avatar

I found over the years more ways how to save/download data using vba:

  • The firs option witch I prefer and would recommend is to use the URLDownloadToFile function of the user32 library using the following solution
  • The second one which was also mentioned be yourself. The point here is to use the Microsoft WinHTTP Services (Interop.WinHttp) COM library. In order to achieve this you can also add the Interop.WinHttp reference to your project link. After that you are able to use simpler notation like here link
  • The third option I aware is to ask the browser to save it for us and then using the Save_Over_Existing_Click_Yes function was mentioned by Santosh. In this case we open an Internet Explorer using the COM interface and navigate to the proper site. So we have to add the Microsoft Internet Controls (Interop.SHDocVw) and the Microsoft HTML Object Library (Microsoft.mshtml) references to our project in order to gain intellisense feature of the editor.
    I don’t like this download method because this is a work around by hacking. BUT if your IE session was already established authenticated etc. this gonna work nicely. The save function of the Internet Controls was dropped because of security concern. See for example: link

Newer the less you have to have the correct url to download what you want. If you pick the wrong one you will download something else :)

  • So please try to make sure the the url you use is correct by enter it in a browser. If it opens the right .csv file than your source could work too.
  • Also please try to send some more information: for example the url to the .csv file

Community's user avatar

answered Jan 10, 2016 at 22:16

minus one's user avatar

minus oneminus one

6227 silver badges27 bronze badges

Try below code :

Copied from here (Not tested)

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

    Private Sub Save_Over_Existing_Click_Yes()

        Dim hWnd As Long
        Dim timeout As Date

        Debug.Print "Save_Over_Existing_Click_Yes"

        'Find the Download complete window, waiting a maximum of 30 seconds for it to appear.  Timeout value is dependent on the
        'size of the download, so make it longer for bigger files

        timeout = Now + TimeValue("00:00:30")
        Do
            hWnd = FindWindow(vbNullString, "Save As")
            DoEvents
            Sleep 200
        Loop Until hWnd Or Now > timeout
        Debug.Print "   Save As window "; Hex(hWnd)

        If hWnd Then
            'Find the child Close button

            hWnd = FindWindowEx(hWnd, 0, "Button", "&Yes")
            Debug.Print "   Yes button "; Hex(hWnd)
        End If

        If hWnd Then

            'Click the Close button

            SetForegroundWindow (hWnd)
            Sleep 600  'this sleep is required and 600 miiliseconds seems to be the minimum that works
            SendMessage hWnd, BM_CLICK, 0, 0
        End If
    End Sub

answered May 23, 2013 at 2:57

Santosh's user avatar

SantoshSantosh

12.1k4 gold badges41 silver badges72 bronze badges

5

 

Бонифаций

Пользователь

Сообщений: 120
Регистрация: 22.12.2012

Доброго времени суток, знатоки.
Прошу помощи в корректировке скрипта или макроса с помощью которого можно скачать из интернета конкретный файл.
Сейчас у меня есть скрипт и макрос ( с сайта ексельвба.ру) в котором я задаю определенный сайт, нужный файл, путь сохранения нужного файла с сайта.
Однако при открытии сохраненного файла на компе открывается в нем страница с всей информацией страницы с интернета. Для примера использована страница:

http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=46526/Example.xlsx

и файл на ней Example.xlsx
Помогите пожалуйста.

 

Я так понял, речь про мой макрос:

http://excelvba.ru/code/DownloadFile

С макросом проблем нет (хотя я бы советовал использовать WinAPI функцию)
Вы просто неправильно указали ссылку на тот файл.
(с чего вы взяли, что надо приписать имя файла к ссылке на тему?)

Вместо
СсылкаНаФайл$ = «http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=46526/Example.xlsx»
напишите
СсылкаНаФайл$ = «http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=68889&action=download»
и всё чудесным образом заработает.

PS: чтобы получить ссылку на файл, щелкните на нём правой кнопкой, и выберите пункт «Копировать ссылку»

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

#3

12.03.2013 00:19:10

Цитата
Бонифаций пишет:
у меня есть скрипт и макрос ( с сайта ексельвба.ру)

А на том самом сайте стесняетесь спросить?))

 

Бонифаций

Пользователь

Сообщений: 120
Регистрация: 22.12.2012

Спасиииибо. Все работает.

 

Бонифаций

Пользователь

Сообщений: 120
Регистрация: 22.12.2012

Макрос супер. Работает отлично. На работе попробовал данный макрос для скачивания определенного файла (Отчет_1.xls) из сети.
Возникла проблема: файл Отчет_1.xls лежит в папке «Отчеты».  Файл Отчет_1.xls в сети обновляется каждые 5 часов, соответственно изменяется и адрес для скачивания в макросе.
Есть ли способы закрепить в макросе адрес файла (Отчет_1.xls) который обновляется?? Спасибо Вам.

 

juk2000

Пользователь

Сообщений: 26
Регистрация: 01.02.2015

Помогите пожалуйста, никак не могу найти макрос с помощью которого
можно будет вытащить таблицу с этого сайта, например самую верхнюю
таблицу

http://24score.com/football/england/premier_league/2016-2017/regular_season/corners/

,
при нажатии одной кнопки в определённый диапазон

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#7

06.11.2016 08:47:33

Цитата
juk2000 написал:  таблицу с этого сайта, например

ну вы даёте… мне вам тоже второй раз отвечать?…

первый здесь

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

Andrew

Гость

#8

25.04.2018 22:37:39

Всем привет!
Никак не пойму в чем проблема. Лимиты сайта или ошибка в коде?

Код
Function GetFile(mURL As String, mPath As String) As Boolean
    Dim XMLHTTP, ADOStream
        On Error GoTo StopFunc
        GetFile = False
        Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
            XMLHTTP.Open "GET", mURL
            XMLHTTP.send
                If XMLHTTP.StatusText = "OK" Then
                    Set ADOStream = CreateObject("ADODB.Stream")
                        With ADOStream
                            .Type = 1
                            .Open
                            .Write XMLHTTP.ResponseBody
                            .SaveToFile mPath, 2
                            .Close
                        End With
                    GetFile = True
                    GoTo ExitFunc
                End If
StopFunc:
        GetFile = False
ExitFunc:
End Function

Скачиваю циклом файлы (картинки) по ссылкам.
Ну, допустим скачивается 80-100 файлов и всё, дальше ничего не скачивается.
Проходит какое то время, запускаю вновь и опять тоже самое, 80-100 файлов получено, потом только false возвращается функцией.
Если ошибки в коде нет, значит лимиты сайта какие то установлены (сайт принципиального значения не имеет)?
Можно как то обойти лимиты? Потому что после останова кода (мной) я перехожу по ссылку в браузере и все открывается!

Изменено: Andrew25.04.2018 22:50:41

Онлайн скачать файл по ссылке

Что касается «скачать файл по ссылке«, почти первым пунктом идет скачать файл по ссылке онлайн, с него и начнем!
Файл будет скачиваться только, если по представленому адресу — документ будет открываться в браузере. Если данный документ в браузере не открывается, то ссылка не прямая

Скачиваем файл по ссылке:

  1. скачать файл по ссылке онлайн
  2. Скачать разные типы файлов по ссылке.
  3. скачать файл с Google диска по ссылке
  4. скачать файл с яндекс диска по ссылке
  1. скачать файл по ссылке онлайн

    С самого начала мы можем протестировать форму со скриптом! Вставьте ссылку, по которой вы хотите скачать файл и нажмите кнопку «Показать ссылку»

    Если нет подходящей ссылки для тестирования формы, скопируйте вот эту :

    https://dwweb.ru/__a-data/__all_for_scripts/__rar/pro_dw_koments_1_3.rar

    Она со страницы все скрипты

    Как скачивать ссылку онлайн скрипт — подробный разбор:

    Для того, чтобы написать рабочий код скачивания ссылки онлайн нам понадобится:

    Атрибут download

    Далее нам потребуется тег ссылки

    input для вставки адреса файла, который надо скачать…

    Кнопку, button — по которой будем нажимать.

    <a href=»» id=»idurl» download style=»display:none»>Скачай файл</a>
    <input id=»idinput»>
    <button id=»id_button»>Нажми на меня</button>

    Далее нам понадобится js + отправим в атрибут href из поля для ввода ссылки.

    И откроем ссылку, чтобы нажать по ней!

    <script>
    id_button.onclick = function (){
    idurl.href = idinput.value;
    idurl.style = «display:block»;
    }
    </script>

    Соберем весь код вместе:

    <a href=»» id=»idurl» download style=»display:none»>Скачай файл</a>
    <input id=»idinput»>
    <button id=»id_button»>Нажми на меня</button>

    <script>
    id_button.onclick = function (){
    idurl.href = idinput.value;
    idurl.style = «display:block»;
    }
    </script>

  2. Скачать разные типы файлов по ссылке.

    Несколько поисковых запросов про скачивание фалов по ссылке… например

    как скачать xml файл по ссылке

    скачать пдф файл по ссылке

    Чем отличается скачивание определенного типа файла по ссылке?

    Для того, чтобы скачать файл с разрешением «xml» или «пдф»… выше приведенной

    Форме абсолютно все равно

    !

    Какое разрешение у вашего файла.

    Данная форма может скачать любой файл онлайн с любого сайта!

    Есть несколько исключений!

    Файл должен существовать!

    Скачивание должно быть разрешено(запрет может быть организован разными способами!).

  3. скачать файл с Google диска по ссылке

    Для того, чтобы скачать файл с Google диска по ссылке нам потребуется:

    Создадим ссылку на любой документ, чтобы вы смогли убедиться, что данный файл существует!

    Ссылка на тестовый файл.

    Далее нажимаем ссылку и проходим на страницу диска:

    В открытом окне ссылки Google диска ищем кнопку скачать! Нажимаем!

    Нажмите, чтобы открыть в новом окне.

    скачать файл с Google диска по ссылке

    Почему возникает вопрос — «скачать файл с Google диска по ссылке»

    Мое предположение : скорее всего человек видит «

    НЕ

    » активную ссылку и не знает, что нужно с ней делать?

    https://drive.google.com/file/d/18iPB-OwfHMjYBdjHDgZyQiRO_RzbfFhZ

    Это решается до банальности просто! Выделяем полностью ссылку.

    Нажимаем ПКМ по выделенному элементу.

    Ищем строку перейти :

    Почему возникает вопрос  - ‘скачать файл с Google диска по ссылке‘
    А далее я уже рассказал.

  4. скачать файл с яндекс диска по ссылке

    Для Яндекс диска все абсолютно аналогично выше рассказанному пункту!

    Либо это будет не активная ссылка

    https://disk.yandex.ru/i/POU_twO6b0zpOw

    Либо активная.

    Переходим…

    Нажмите, чтобы открыть в новом окне.

    скачать файл с яндекс диска по ссылке

Можете не благодарить, лучше помогите!

COMMENTS+

 
BBcode


Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как скачать microsoft word 2013 бесплатно для windows 10
  • Как скачать microsoft word 2012
  • Как скачать microsoft word 2010 с официального сайта
  • Как скачать microsoft word 2010 бесплатно на ноутбук
  • Как скачать microsoft word 2010 бесплатно для windows 10 через торрент

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии