none
Работа с интернет-поиском RRS feed

  • Вопрос

  • Подскажите возможно ли такое сделать:

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

     
    25 февраля 2013 г. 12:20

Ответы

  • > А как получить текст, в тегах которого нет 'style="display: none;"', то есть по примеру только 1,2,3

    В свойстве numberPages.InnerText будет содержаться текст всех дочерних узлов. Это не оно?

    -----

    Зачем использовать регулярки, если под рукой уже есть мощное средство - HtmlAgilityPack.

    Если InnerText не даёт то, что нужно, то можно попробовать такой вариант:

    var nodes = doc.DocumentNode.SelectNodes(
        "//td[@class='pages']//*[not(@style='display: none;')]");

    В коллекции nodes содержатся узлы без display none.

    • Помечено в качестве ответа Magals 28 февраля 2013 г. 16:49
    28 февраля 2013 г. 14:51
  • Можно использовать Html Agility Pack. Пример тут. Ну или так сказать "голыми руками" с помощью Regex-ов.


    Exclusive access to top developers. Remote job for top developers.

    • Помечено в качестве ответа Magals 27 февраля 2013 г. 16:03
    26 февраля 2013 г. 17:43

Все ответы

  • Да, возможно.
    25 февраля 2013 г. 13:38
  • а вот как?)

    25 февраля 2013 г. 15:08
  • Как то Шерлок Холмс и доктор Ватсон, путешествуя на воздушном шаре, заблудились.

    Приземляются и видят мужчину, пасущего коз.

    Шерлок Холмс:

    - Сэр, вы не подскажете, где мы находимся?

    Пастух:

    - В корзине воздушного шара господа!

    Холмс:

    - Ватсон , мы в России и перед нами русский программист.

    Ватсон:

    -!??

    Холмс:

    - Это элементарно! Во-первых, он прямо ответил на поставленный вопрос. Во-вторых, он ответил на него совершенно точно. Ну и в третьих, нам от его ответа никакой пользы!

    - А как вы поняли, что мы в России?

    - Только в России программисты пасут коз!

    Улыбнулись. Теперь по делу. Ваш вопрос не такой маленький как может казаться.

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


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    25 февраля 2013 г. 15:17
    Отвечающий
  • с первым делом более менее разобрался. теперь другая задача стоит. вот допустим есть запчасти на ебее

    http://stores.ebay.de/kfzunion/147-Ford-Mondeo-2002-/_i.html?_fsub=5255408015&_sid=982879015&_trksid=p4634.c0.m322

    нужно в массив добавить все названия запчастей, которые имеются на странице. кто поделиться с идей в реализации


    c# winform  Framework 4 client profile
    • Изменено Magals 26 февраля 2013 г. 17:03
    26 февраля 2013 г. 16:46
  • То что вы делаете - это по сути задача парсинга вебсайтов. Это можно делать либо имитируя программно запрос к сайту и разбирая возвращенный response (вплоть до разбора пришедшего HTML), либо используя предоставляемый сайтами API (если конечно такой имеется). Второй вариант более предпочтителен, так как более или менее гарантирует, что ничего не изменится завтра. Для eBay существует API - вот статья на хабре, которая введет в курс дела.

    Exclusive access to top developers. Remote job for top developers.

    26 февраля 2013 г. 17:07
  • а вот если сохранить доп в файле, всё содержимого блока див (<div class="pview rs-pview" id="v4-22">)в которой лежат таблицы с элементами и уже разбирать файл. вот только как получить только содержимого определенного дива. 

    26 февраля 2013 г. 17:28
  • Можно использовать Html Agility Pack. Пример тут. Ну или так сказать "голыми руками" с помощью Regex-ов.


    Exclusive access to top developers. Remote job for top developers.

    • Помечено в качестве ответа Magals 27 февраля 2013 г. 16:03
    26 февраля 2013 г. 17:43
  • Html Agility Pack. -замечательная вещь, спасла несколько ночей. но появилась другая проблема

    var numberPages = doc.DocumentNode.SelectSingleNode("//td[@class='pages']");
    получаю весь текст, который есть в классе "pages". А как получить текст, в тегах которого нет 'style="display: none;"', то есть по примеру только 1,2,3
    28 февраля 2013 г. 10:13
  • уже так воспользовался:

    var web = new HtmlWeb();
                var doc = web.Load(url);
                var numberPages = doc.DocumentNode.SelectSingleNode("//td[@class='pages']");
                string[] ss = Regex.Split(numberPages.InnerHtml, @"</a>*");
                      for (int i = 0; i < ss.Count(); i++)
                {
                    if (!Regex.IsMatch(ss[i], @"\bdisplay:none\b*"))
                    {
                        spann.Add(ss[i]);
                    }
                }

    private List<string> spann = new List<string>();

    28 февраля 2013 г. 12:32
  • > А как получить текст, в тегах которого нет 'style="display: none;"', то есть по примеру только 1,2,3

    В свойстве numberPages.InnerText будет содержаться текст всех дочерних узлов. Это не оно?

    -----

    Зачем использовать регулярки, если под рукой уже есть мощное средство - HtmlAgilityPack.

    Если InnerText не даёт то, что нужно, то можно попробовать такой вариант:

    var nodes = doc.DocumentNode.SelectNodes(
        "//td[@class='pages']//*[not(@style='display: none;')]");

    В коллекции nodes содержатся узлы без display none.

    • Помечено в качестве ответа Magals 28 февраля 2013 г. 16:49
    28 февраля 2013 г. 14:51
  • > А как получить текст, в тегах которого нет 'style="display: none;"', то есть по примеру только 1,2,3

    В свойстве numberPages.InnerText будет содержаться текст всех дочерних узлов. Это не оно?

    -----

    Зачем использовать регулярки, если под рукой уже есть мощное средство - HtmlAgilityPack.

    Если InnerText не даёт то, что нужно, то можно попробовать такой вариант:

    var nodes = doc.DocumentNode.SelectNodes(
        "//td[@class='pages']//*[not(@style='display: none;')]");

    В коллекции nodes содержатся узлы без display none.

    хмм такой вариант возвращает только "1" то есть текст первого  элемента
    1 марта 2013 г. 10:31