не удается получить правильный запрос xpath для получения изображения с веб-страницы

Я создаю службу rss, используя С#, и один из веб-сайтов, с которого мы получаем новости rss, не имеет прямой ссылки на его изображения, но если мы перейдем на их страницы с прямыми ссылками, мы можем найти изображение с помощью firebug и с помощью Функция «XPATH» в firebug Я могу получить запрос XPATH для этого конкретного изображения, но кажется, что xpathquery недействителен, потому что я проверил его xpathquery с помощью: HtmlAgilityPack, а также yahoo YQL

вот xpath, который я получаю от firebug:

//body
  /form
   /table[2]
    /tbody
     /tr[2]
      /td
       /table
        /tbody
         /tr
          /td
           /table
            /tbody
             /tr
              /td
               /img

а вот мой YQL

select * 
from html 
where url="http://isna.ir/ISNA/PicView.aspx?Pic=Pic-1718372-1&Lang=P" 
      and xpath='//body
                  /form
                   /table[2]
                    /tbody
                     /tr[2]
                      /td
                       /table
                        /tbody
                         /tr
                          /td
                           /table
                            /tbody
                             /tr
                              /td
                               /img'

это веб-сайт, на котором я хочу получить изображения:

http://isna.ir/ISNA/PicView.aspx?Pic=Pic-1718372-1&Lang=P

так как моя способность Xpath слишком слаба, и я знаю об этом лишь несколько вещей, мне приходится полагаться на такие инструменты, как firebug ... на самом деле я знаю только firebug, который возвращает xpath из выбранного тега html

поэтому у меня есть два вопроса здесь:

1-не могли бы вы написать мне правильный xpath или посоветовать мне, как написать правильный?

2-есть ли другие инструменты, такие как firebug, для отображения xpath, соответствующего тегам html?

С уважением.


person Seyed Vahid Hashemi    schedule 19.02.2011    source источник
comment
@austin-powers: Поскольку я очень сочувствую вам, я не буду отвечать на ваш вопрос. Вместо этого я призываю вас начать читать хорошую книгу по XPath и по-настоящему изучить XPath. Вы не понимаете, чего вам не хватает. Кроме того, возьмите мой визуализатор XPath, размещенный на сайте Ларса Хаттара (huttar.net/dimitre/ XPV/TopXML-XPV.html) и поэкспериментируйте с ним.   -  person Dimitre Novatchev    schedule 19.02.2011
comment
@austin-powers: Это часто задаваемый вопрос: браузер добавляет в DOM обязательные элементы HTML, такие как HEAD или TBODY. Другой конструктор DOM может не делать этого.   -  person    schedule 19.02.2011
comment
@novatchev спасибо за ваш совет, но, по крайней мере, я немного знаю о xpath, и поэтому я использовал HtmlAgilityPack для преобразования html в xhtml, а затем получил xpathQuery, поскольку ваше программное обеспечение не помогает мне открыть эту конкретную веб-страницу.   -  person Seyed Vahid Hashemi    schedule 19.02.2011


Ответы (1)


У меня есть ответ: HtmlAgilityPack не поддерживает теги [tbody] и [html] внутри xpathQuery, поэтому я переписал свой запрос следующим образом:

//*[@id='Table2']/tbody/tr/td/table/tr/td/img

or

//body/form/table[2]/tr[2]/td/table/tr/td/table/tr/td/img

и вот что я получил от отслеживания HtmlAgilityPack

/html[1]/body[1]/table[2]/tr[2]/td[1]/table[1]/tr[1]/td[1]/table[1]/tr[1]/td[1]/img[1]

поскольку все приведенные выше коды верны для HtmlAgilityPack

и, к вашему сведению, есть еще один плагин для firebug, называемый firepath, который даст вам краткий запрос.

С уважением.

person Seyed Vahid Hashemi    schedule 19.02.2011