Member 13063329 Ответов: 1

Программно загрузить файл на веб-сайт и захватить вывод (как найти ссылку загрузки для веб-сайта)


Я создаю приложение WPF, которое будет загружать файл на сайт и захватывать выходные данные для отображения в окне приложения. Но я не могу найти хороший способ найти ссылку за кнопкой загрузки сайта, чтобы загрузить файл.
Например, я не могу просто загрузить xyz.com скорее мне нужна ссылка за кнопкой загрузки сайта, которая сообщала бы, куда загружается файл, который может быть похож на xyz.com\upload.
Я не знаю, есть ли лучший способ сделать это, не требуя ссылки.

Я нашел ссылку для загрузки SVG to Vector Drawable Converter – конвертируйте изображения SVG в файлы ресурсов Android VectorDrawable XML онлайн[^] щелкнув правой кнопкой мыши > Inspect, а затем посмотрев на код позади, ссылка, которую я нашел, находится в коде ниже.

Мне нужна ссылка для Android SVG для VectorDrawable[^] или лучший способ выполнить задачу, не нуждаясь в этой связи.

Что я уже пробовал:

String uriString = "http://193.124.64.166/api/svg2vd/v1";

// Create a new WebClient instance.
WebClient myWebClient = new WebClient();

//Filepath contains the path of the .svg file on my local machine
string fileName = FilePath;

// Upload the file to the URI.
var responseArray = myWebClient.UploadFile(uriString, "POST", fileName);

// Decode and display the response.
// ProcessData is my method that formats the data returned by the WebClient
string[] results =     VectorDataProcess.ProcessData(System.Text.Encoding.ASCII.GetString(responseArray));

Richard MacCutchan

Это будет варьироваться от сайта к сайту, поэтому вам нужно посмотреть на источник сайта, чтобы увидеть, где он находится.

Member 13063329

Я много пробовал и не мог найти его для второй ссылки на сайт, которую я упомянул в этом вопросе. Если бы вы могли взглянуть и дать какое-нибудь предложение, я был бы вам очень благодарен.

Richard MacCutchan

У второго нет кнопки загрузки, он использует перетаскивание. Однако вы найдете ответ, только проверив источник страницы.

Member 13063329

Когда вы нажимаете на область перетаскивания, открывается окно просмотра. Я уже много часов изучаю источник страницы, но безуспешно. Другая пара глаз могла бы помочь.

Richard MacCutchan

В этом случае он, вероятно, делает это, чтобы защитить себя от ботов.

Member 13063329

Есть ли другой способ использовать этот сайт из моего приложения WPF?

Richard MacCutchan

Я понятия не имею. Как я уже говорил, Вы можете понять это, только взглянув на исходный код веб-страницы.

Dave Kreskowiak

Вы не сможете сделать это для каждого сайта. Существует множество методов, используемых для загрузки файлов, некоторые из них просты, как ваша ссылка, для формирования сообщений, а другие невозможно получить ссылку, потому что файл загружается с помощью кода Javascript. Ссылки становятся все более и более редкими, вероятно, из-за таких ботов, как ваш.

Member 13063329

Так в чем же решение? Если у меня есть этот JS-код, это поможет? Как

Dave Kreskowiak

Нет, нет никакого решения. Этот код обычно находится в других файлах сценариев, зашифрованном содержимом или флэш-содержимом, и вы не сможете до него добраться. Кроме того, если вы не используете элемент управления веб-браузером, вы даже не получите javascript или другой язык сценариев.

Member 13063329

Это проект github, так что я могу просматривать код или раскручивать его

1 Ответов

Рейтинг:
2

Graeme_Grant

Выскабливание страниц - это хмурый метод работы с веб-сайтами. Если вы должны сделать это таким образом, в небольшом качестве, это может остаться незамеченным.

Чтобы увидеть, что происходит с любым HTTP-трафиком, и определить, что происходит, вам нужен такой http-сниффер, как: Скрипач - бесплатный веб-прокси для отладки[^]

Как только вы его установите и настроите, используйте веб-сайт, как обычно, вручную, и выполните загрузку. Теперь нажмите на пакет слева и посмотрите на запрос справа, и вы увидите именно то, что требуется.


Member 13063329

Я очень новичок в этом, но это то, что я наблюдал. Куча пакетов была перечислена слева, затем я зашел на сайт. Затем, когда я загрузил, я не увидел никаких изменений в пакетах, и ни один новый пакет не был добавлен, затем я попробовал другой сайт, ссылка на который у меня уже была, и для этого, когда я загрузил, несколько новых пакетов появились слева, и у одного из них была та ссылка, которая показана в моем примере кода выше. Поэтому я не уверен, как найти поведение или что требуется сайту, если при загрузке файла не происходит никаких видимых изменений.