c# сайт краулер

  • Автор теми Автор теми Avoska
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 15.02.2009
Повідом.: 132
c# сайт краулер

Доброй день!Задача -
Программа сканирует сайт (
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
) и сливает в csv файл всю инфу о Бары и Кафе(адрес номер телефона рейтинг и тдд).
Помогите пожалуйста!Может есть пример или готовая програмка?
 
Обязательно на с# ?
 
Да мне самому нужно научиться,типа -тестового задания,только я не знаю как это делается( Можете подсказать?
если сделает кто-то другой это не даст никакого толку, это не одна операция как бы подсказать что-то путевое не выйдет, сначала вебреквест на сайт чтобы получить всю страничку в виде строки, потом ее надо преобразовать в нужный формат и сохранить на диск вот как бы и все
 
Хотя бы с чего начинать копать?
Создам таблицу datateble с нужными колонками и строками
Парсить страницу,потом выбирать из нее то что нужно и вносить в таблицу.
1 как парсить?
2 как парсить страницы (автоматом парсила каждую страницу по нумерации страница 1 2 3 и тдд)
3 как автоматически выбирать нужную инфу и сразу вносить в таблицу?
 
Смотреть в сторону :
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Тестовое задание для устройства на работу? Если да, то на какую позицию?
 
Сделал - скачивает страничку и записывает в документ.
прикрепил HtmlAgilityPack.
Нужно сделать - Выбрать из всех страничек с 1 по последнюю только Название кафе бара или ресторана + рейтинг + адрес и телефон и сохранить эти данные в csv. как это сделать?
архив с проектом -
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
Помогите:confused:
 
Посмотрел на проект по ссылке. Забудь на время про Html Agility Pack - это я погорячился посоветовать. Бери пока тестовые задания попроще.
 
как раз HtmlAgilityPack +
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
и нужно советовать для таких задач
 
как раз HtmlAgilityPack +
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
и нужно советовать для таких задач
Slowpoke.webp
 
совсем не получается( Я только начал осваивать c# и это мое первое серьезное задание.
читал читал и нифига.
Можете пожалуйста доработать мой код или переделать если есть время и желание помочь.
Задача
сайт -
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

нужно взять информацию о кафе и барах с первой по последнюю страницы
Название,адрес,телефон и вывести в ричбокс с последующим сохранением в csv.
все что я самостоятельно смог осилить проект в архиве
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Огромное пожалуйста)
 
а чем теме можно помочь если ты пишешь тут сообщения и игнорируеш личку?
 
я выходил из Хф не видел сорри,уже ответил

то что я навоял , качается одна страничка,сохраняется и выводится в ричтекстбокс
private void BStart_Click(object sender, EventArgs e)
{

WebRequest webReq = WebRequest.Create("
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
");
WebResponse webRes = webReq.GetResponse();
Stream st = webRes.GetResponseStream();
StreamReader sr = new StreamReader(st);
StreamWriter sw = new StreamWriter(@"E:\Projects\Projects 2\FormParser\1.html");
string response = sr.ReadToEnd();
sw.WriteLine(response);
sr.Close();
sw.Close();
richTextBox1.Text = File.ReadAllText(@"E:\Projects\Projects 2\FormParser\1.html");
}

private void Bremove_Click(object sender, EventArgs e)
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(@"E:\Projects\Projects 2\FormParser\1.html");

}


Что нужно,что бы качались все 8 страниц и сохранялись в файл для последующей обработки(или как качать не сохраняя,а сразу обрабатывать вытаскивать нужную инфу и только потом сохранять и выводить в ричтекстбокс?)
Как именно вытащить нужную инфу?
вот кусок странички с нужной инфой(обведена красным)
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
Любой джуниор такие задачи должен решать как белка щелкает орехи. Найди студента, заплати денег и он тебе все сделает
 
Кстати, замечательная новость для тех, кто не хочет париться с XPath, но дружит с селекторами jQuery - проект ScrapySharp, упрощающий поиск элементов для таких лентяев, как например я :)

Код:
using System;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using HtmlAgilityPack;
using ScrapySharp.Extensions;

namespace ConsoleApplication1
{
    class Program
    {
        private static readonly string BaseUrl = "https://www.057.ua";
        static void Main(string[] args)
        {
            ParsePage("/dosug/446");
        }

        private static void ParsePage(string url)
        {
            var request = WebRequest.Create(BaseUrl + url) as HttpWebRequest;

            HtmlDocument htmlDoc = new HtmlDocument();

            using (var response = request.GetResponse())
            using (var responseStream = response.GetResponseStream())
            {
                htmlDoc.Load(responseStream, Encoding.UTF8);
            }

            var facilityNodes = htmlDoc.DocumentNode.CssSelect("table.catalog_middle_lux")
                .Union(htmlDoc.DocumentNode.CssSelect("table.catalog_middle_standart"))
                .Union(htmlDoc.DocumentNode.CssSelect("table.catalog_middle_free"));

            foreach (var node in facilityNodes)
            {
                var name = node.CssSelect("h2 > a").First().InnerText;
                Console.WriteLine(name);
            }

            var nextPageNode = htmlDoc.DocumentNode.CssSelect("#paginationControl > a").Last();
            if(nextPageNode.InnerText.Contains("Следующая"))
            {
                ParsePage(nextPageNode.GetAttributeValue("href"));
            }
        }
    }
}
 
Спсб,попробую переписать и запустить.
 
Уже 2 темы в разделе с названием "пАмАгИтЕ".

Выглядит, как будто студентики закончили ВУЗ, а знаний для выполнения тестового задания не хватает.
 
Назад
Зверху Знизу