0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 7

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

09.01.2016, 21:27. Показов 1747. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru