Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 7

Парсинг большого количества страниц

09.01.2016, 21:27. Показов 1733. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, товарищи!
Прошу у Вас помощи, самому боюсь не справиться - знаний маловато.
Пишу парсер списка ссылок, и примерно после 80 страниц программа выдает ошибку при выполнении "string html = wc.DownloadString(url)".
Если кто-то знает как подправить программу, чтобы это было более грамотно и эффективно, а главное чтобы ошибок не было, помогите пожалуйста...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Threading;
 
namespace Парсер_КиноПоиска
{
    class Parser
    {
        static void Main(string[] args)
        {
            WebClient wc = new WebClient();
            wc.Headers.Add("Accept: text/html, application/xhtml+xml, */*");
            wc.Headers.Add("User-Agent: Other");
            int page = 1;
            bool key;
            string[] id=new string[50000];
            int i = 1 ;
            do
            {
                string url = "http://www.kinopoisk.ru/top/navigator/m_act%5Bnum_vote%5D/10/m_act%5Brating%5D/1:/order/num_vote/page/"+page+"/#results";
                string html = wc.DownloadString(url);
                File.WriteAllText(@"D:\file1", html);
                string mid = @"filmId:(.*?),";
                key = false;
                foreach (Match m in Regex.Matches(html, mid))
                {
                    Console.WriteLine(i+") "+m.Groups[1].Value);
                    id[i] = m.Groups[1].Value;
                    File.AppendAllText(@"D:\file2", m.Groups[1].Value + "\n");
                    i++;
                    key = true;
                    
                }
                page++;
                Thread.Sleep(3000);
            } while (key);
            Console.ReadKey();
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2016, 21:27
Ответы с готовыми решениями:

Парсинг большого количества hex значений из текстового файла
Нужно из текстового файла прочитать кучу hex целочисленных значений от int16 до uint64, а книжку читать не хочется, но если придётся, то...

Парсинг большого XML документа
Доброго времени суток! Помогите пожалуйста спарсить XML файл такого рода. Вот его кусочек: <Tools> <CatalogTool> ...

Парсинг большого файла: вопрос оптимизации
Доброго времени суток. Есть файл, набитый строками в духе <v>какой-то текст</v> каким бы образом мне выдрать текст, заключенный к...

2
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
10.01.2016, 12:33
OFFOSORG,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void Form1_Load(object sender, EventArgs e)
        {
            Control.CheckForIllegalCrossThreadCalls = false;
            for (var i = 0; i < 100; i++)
            {
                var webRequest3 = WebRequest.Create("http://www.kinopoisk.ru/top/navigator/m_act%5Bnum_vote%5D/10/m_act%5Brating%5D/1:/order/num_vote/page/" + i + "/#results");
                webRequest3.BeginGetResponse(ProcessWebRequest, webRequest3);
            }
        }
 
        private int count = 0;
        void ProcessWebRequest(IAsyncResult ar)
        {
            var webRequest = (WebRequest)ar.AsyncState;
            var webResponse = webRequest.EndGetResponse(ar);
            using (Stream stream = webResponse.GetResponseStream())
            {
                StreamReader reader = new StreamReader(stream, Encoding.Default);
                String responseString = reader.ReadToEnd();
                string template = "<div class="name"><a href="/level/.*/film/(.*?)/">(.*?)</a>";
                foreach (Match m in Regex.Matches(responseString, template))
                {
                    richTextBox1.AppendText(String.Format("id = {0}, Name = {1}{2}", m.Groups[1].Value, m.Groups[2].Value, Environment.NewLine));
                }
                Text = "Страниц спарсено: " + count++;
 
            }
        }
Миниатюры
Парсинг большого количества страниц  
1
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 7
10.01.2016, 15:47  [ТС]
edward_freedom, ого, спасибо Вам большое! Выручили
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2016, 15:47
Помогаю со студенческими работами здесь

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

Парсинг страниц
Здравствуйте, имеются страницы такого вида...

Оптимизация большого количества NPC на карте
Пытаюсь сделать Терарию на C#(без Unity и т.д).В этой игре есть довольно большая карта, на которой одновременно размещается множество...

Добавление в словарь большого количества значений
Прошу помощи. Никак не могу понять. как реализовать следующее. Есть словарь: public Dictionary&lt;string, string&gt; logos = new...

Алгоритм проверки большого количества условий
Здравствуйте! Ломаю голову уже пару недель. Существует задача в ходе решения которой необходимо проверять большое количество условий. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru