2010-11-11 5 views
1

Я пытаюсь создать сканер для загрузки некоторого контента с веб-сайта.meta refresh download/C# crawler

Предполагая, что URL потреблять что-то вроде

clickUrl ="http://www.example.com/idocs-nph/search/pdfViewerForm.html?args=5C7QrtC22wGYK2xFpSwMnXdtvSoClrL8xJKSjjboeVQpCCmqt4mgGEHlbmahCJFQEmRQwePEviF8EeCoaT0MAKztT3Sb63xk3VkL3PiCQ3RLoVYQqjKiogfu8Gq1RKKQmyoZK8o4WQM0kj-3nPY6gOqNXOY8VS4VhacAYKom_mBgul0xmRvgLA.."; 

на веб-браузере, загрузка выполняется возвращающегося HTML, содержащий обновления META

<meta http-equiv="REFRESH" content="0;url=http://www.example.com/idocs-nph/search/pdfViewerForm.html?args=5C7QrtC22wGYK2xFpSwMnXdtvSoClrL8xJKSjjboeVQpCCmqt4mgGEHlbmahCJFQEmRQwePEviF8EeCoaT0MAKztT3Sb63xk3VkL3PiCQ3TmKpPQrAvPZQfu8Gq1RKKQmyoZK8o4WQMl05IxFu8XBzuJ49RIAPXJ8d-HneKenBQ-TKbP_e17qQ.."/> 

и браузер запрашивает имя файла для сохранения файла

По моему каталогу,

открываю WebRequest к ClickURL,

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(clickUrl); 

Я обнаружить и следовать ВОССТАНОВЛЕНИЕ URL с помощью нового WebRequest, но ответ новый HTML, содержащий также ОБНОВИТЬ META, а не фактический файл (довольно рекурсивный)

HttpWebRequest не содержит печенье

ответ

1

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

Sourceforge делает что-то интересное здесь, что может помочь. Если вы хотите загрузить файл из Sourceforge, вы появляетесь на странице, которую вы описываете. Однако, если вы откроете ту же страницу с помощью wget, вы увидите, что она действительно загружает файл. Он обнаруживает, что вы не обычный браузер и отправляет вам файл (HTML не собирается делать ничего хорошего с wget, он не будет смотреть на рекламные объявления).

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