Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Пропал парсинг web страницы / 25 сообщений из 30, страница 1 из 2
02.08.2018, 15:10
    #39682634
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Вот это всегда работало:

Код: vbnet
1.
2.
3.
4.
5.
 Dim strAdress As String = "https://prozorro.gov.ua/tender/search?edrpou=20915546"
        Dim web As New WebClient
        web.Encoding = System.Text.Encoding.UTF8
        Dim strQlltext As String = web.DownloadString(strAdress)
        RichTextBox1.Text = strQlltext



А вот сегодня следующий фокус, вернее ошибка "Базовое соединение закрыто: Непредвиденная ошибка при передаче."
Как лечить?
...
Рейтинг: 0 / 0
02.08.2018, 15:24
    #39682642
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

проверить дату и время на компьютере, попробовать отключить проверку сертификата
Код: c#
1.
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
...
Рейтинг: 0 / 0
02.08.2018, 15:35
    #39682649
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Roman MejtesBujhm_C,

проверить дату и время на компьютере, попробовать отключить проверку сертификата
Код: c#
1.
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;



Время проверил. Сертификат отключил! Не помогло. Что за фокус?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 Try
            Dim strAdress As String = "https://prozorro.gov.ua/tender/search?edrpou=20915546"
            Dim web As New WebClient
            web.Encoding = System.Text.Encoding.UTF8
            Dim strQlltext As String = web.DownloadString(strAdress)
        
             System.Net.ServicePointManager.ServerCertificateValidationCallback = _
            Function(se As Object, _
            cert As System.Security.Cryptography.X509Certificates.X509Certificate, _
            chain As System.Security.Cryptography.X509Certificates.X509Chain, _
            sslerror As System.Net.Security.SslPolicyErrors) True
            RichTextBox1.Text = strQlltext
        
            ' GBA(strQlltext, "<li class=""marked"">", "</li>", ListBox1)
        Catch ex As Exception
            MsgBox(ex.ToString)

        End Try
...
Рейтинг: 0 / 0
02.08.2018, 15:40
    #39682652
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

а в браузере запрос выполняется? ("я не робот" не появляется?)

https://prozorro.gov.ua/robots.txt User-agent: *
Disallow: /*?*
Disallow: /form/
Disallow: /search/
Запрос формально попадает под запрет (Disallow: /*?*). Т.е., они не хотят чтобы эти станицы парсили, как минимум они об этом заявили... Чаще всего, конечно, такие декларации остаются лишь декларациями, но всяко бывает...
...
Рейтинг: 0 / 0
02.08.2018, 15:52
    #39682664
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRBujhm_C,

а в браузере запрос выполняется? ("я не робот" не появляется?)

https://prozorro.gov.ua/robots.txt User-agent: *
Disallow: /*?*
Disallow: /form/
Disallow: /search/
Запрос формально попадает под запрет (Disallow: /*?*). Т.е., они не хотят чтобы эти станицы парсили, как минимум они об этом заявили... Чаще всего, конечно, такие декларации остаются лишь декларациями, но всяко бывает...

В браузере выполняется на ура. Затык в чем то другом!
...
Рейтинг: 0 / 0
02.08.2018, 16:09
    #39682679
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRЗапрос формально попадает под запрет (Disallow: /*?*). Т.е., они не хотят чтобы эти станицы парсили, как минимум они об этом заявили...
неправда, просто рекомендацмя не индексировать
...
Рейтинг: 0 / 0
02.08.2018, 16:11
    #39682681
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_CВ браузере выполняется на ура. Затык в чем то другом!
заголовки в запросе отдай такие, как у броузера
...
Рейтинг: 0 / 0
02.08.2018, 16:16
    #39682686
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_CВ браузере выполняется на ура. Затык в чем то другом!
Ну так браузер же не робот (в отличие от WebClient). С другого айпишника затыка же нет (у меня WebClient выполняет на ура). Поэтому антибота исключать рано...

Попробуйте еще так
Код: c#
1.
2.
3.
4.
5.
6.
using (WebClient wc = new WebClient()) {
     //wc.Headers.Add("User-Agent", "DotNET WebClient");
     //htmlsrc = wc.DownloadString(pageuri);
     var rawdata = wc.DownloadData(pageuri);
     htmlsrc = Encoding.UTF8.GetString(rawdata);
}
...
Рейтинг: 0 / 0
02.08.2018, 16:20
    #39682688
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
ИзопропилBujhm_CВ браузере выполняется на ура. Затык в чем то другом!
заголовки в запросе отдай такие, как у броузера



" https://prozorro.gov.ua/tender/search?edrpou=20915546" -это выполняется в браузере, а это не идет, ошибка

Код: vbnet
1.
   Dim strQlltext As String = web.DownloadString("https://prozorro.gov.ua/tender/search?edrpou=20915546")
...
Рейтинг: 0 / 0
02.08.2018, 16:38
    #39682701
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
ИзопропилLRЗапрос формально попадает под запрет (Disallow: /*?*). Т.е., они не хотят чтобы эти станицы парсили, как минимум они об этом заявили...
неправда, просто рекомендацмя не индексировать
Да, robots.txt изначально - рекомендации для поисковиков. Но, как я понял, в последнее время используется и как "антибот-декларация". К тому же, все чаще встречаются мнения типа "вместо того чтобы "запрещать" индексацию проще сделать так, чтобы робот просто не смог до нее добраться".
...
Рейтинг: 0 / 0
02.08.2018, 16:39
    #39682704
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRBujhm_CВ браузере выполняется на ура. Затык в чем то другом!
Ну так браузер же не робот (в отличие от WebClient). С другого айпишника затыка же нет (у меня WebClient выполняет на ура). Поэтому антибота исключать рано...

Попробуйте еще так
Код: c#
1.
2.
3.
4.
5.
6.
using (WebClient wc = new WebClient()) {
     //wc.Headers.Add("User-Agent", "DotNET WebClient");
     //htmlsrc = wc.DownloadString(pageuri);
     var rawdata = wc.DownloadData(pageuri);
     htmlsrc = Encoding.UTF8.GetString(rawdata);
}



То же не идет, что никак не обойти? Я боле года выполнял процедуру, никогда сбоев не было. А что сегодня за катаклизм?
...
Рейтинг: 0 / 0
02.08.2018, 16:49
    #39682713
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

тогда, как Изопропил сказал - нажимаете в браузере F12 и добавляете WebClient аналогичные заголовки запроса

wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0");
...и т.д.
...
Рейтинг: 0 / 0
02.08.2018, 17:58
    #39682736
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Изопропил,

https://en.wikipedia.org/wiki/Internet_bot Servers may choose to outline rules on the behaviour of internet bots by implementing a robots.txt file: this file is simply text stating the rules governing a bot's behaviour on that server. Any bot interacting with (or 'spidering') any server that does not follow these rules should, in theory, be denied access to, or removed from, the affected website.
https://en.wikipedia.org/wiki/Web_scraping Bots sometimes declare who they are (using user agent strings) and can be blocked on that basis using robots.txt; 'googlebot' is an example. Other bots make no distinction between themselves and a human using a browser.
...
Websites can declare if crawling is allowed or not in the robots.txt file and allow partial access, limit the crawl rate, specify the optimal time to crawl and more.
...
Рейтинг: 0 / 0
02.08.2018, 18:17
    #39682740
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

чтобы откинуть версию с антиботом, попробуйте незапрещенную страничку
var str = wc.DownloadString(" https://prozorro.gov.ua/");

хотя, если айпишник попал в черный список, могут рубить и на корню...
...
Рейтинг: 0 / 0
02.08.2018, 18:22
    #39682742
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
просто tls нужной версии ему нужен

добавить
Код: c#
1.
System.Net.ServicePointManager.SecurityProtocol =  System.Net.SecurityProtocolType.Tls12;
...
Рейтинг: 0 / 0
02.08.2018, 18:35
    #39682745
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Изопропил,

Да, похоже это оно. С Tls11 тоже проходит, а вот с Tls получается такая же ошибка.
...
Рейтинг: 0 / 0
02.08.2018, 19:30
    #39682777
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRBujhm_C,

чтобы откинуть версию с антиботом, попробуйте незапрещенную страничку
var str = wc.DownloadString(" https://prozorro.gov.ua/");
хотя, если айпишник попал в черный список, могут рубить и на корню...

1. попробовал не запрещенную страничку
var str = wc.DownloadString(" https://prozorro.gov.ua/"); - то же неудача!
2."айпишник попал в черный список"- и что, без вариантов?
3. System.Net.SecurityProtocolType.Tls12;- не проходит, только System.Net.SecurityProtocolType.Tls
...
Рейтинг: 0 / 0
02.08.2018, 19:52
    #39682786
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C3. System.Net.SecurityProtocolType.Tls12;- не проходит, только System.Net.SecurityProtocolType.Tls
Ну вот в этом, вероятней всего, и причина. Нужен хотя бы System.Net.SecurityProtocolType.Tls11.
А что значит "не проходит"? Ошибка при присваивании?
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
(т.е. ServicePointManager.SecurityProtocol==SecurityProtocolType.Tls, и изменить это нельзя?)
...
Рейтинг: 0 / 0
02.08.2018, 20:12
    #39682796
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

Погуглил, похоже .NET 4.0 не поддерживает Tls11/Tls12, одно решение видел - переводить проект на .NET 4.5... Есть ли другие решения, х.з.
...
Рейтинг: 0 / 0
02.08.2018, 20:13
    #39682797
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRBujhm_C3. System.Net.SecurityProtocolType.Tls12;- не проходит, только System.Net.SecurityProtocolType.Tls
Ну вот в этом, вероятней всего, и причина. Нужен хотя бы System.Net.SecurityProtocolType.Tls11.
А что значит "не проходит"? Ошибка при присваивании?
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
(т.е. ServicePointManager.SecurityProtocol==SecurityProtocolType.Tls, и изменить это нельзя?)

Не присваивается! После точки только SecurityProtocolType.Tls или Ssl3!
...
Рейтинг: 0 / 0
02.08.2018, 20:15
    #39682798
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C Не присваивается! После точки только SecurityProtocolType.Tls или Ssl3!
Ну, значит это .NET 4.0. Есть возможность перевести проект на .NET 4.5?
...
Рейтинг: 0 / 0
02.08.2018, 20:19
    #39682804
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LR,

Сейчас скачаю, попробую, какова вероятность, что поможет?
...
Рейтинг: 0 / 0
02.08.2018, 20:23
    #39682805
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Bujhm_C,

пусть будет 95%)) но лучше спросить у Изопропила, мож есть более простое решение...
...
Рейтинг: 0 / 0
02.08.2018, 21:01
    #39682822
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
LRмож есть более простое решение...
стартовать curl в отдельном процессе :]


хотя это вряд ли будет проще - только при невозможности обновить фреймворк
...
Рейтинг: 0 / 0
02.08.2018, 21:11
    #39682825
Bujhm_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал парсинг web страницы
Помогло
Код: vbnet
1.
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12

!!!
Но есть одно но... Проект собран на 10 Студии а там Framework 4. Пришлось опробовать на VS 2015 с Framework 4.5.
Вот, если бы рыбку съесть.. на Framework 4?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Пропал парсинг web страницы / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]