невозможно получить правильный запрос xpath для получения изображения с веб-страницы - PullRequest
2 голосов
/ 19 февраля 2011

Я создаю службу rss, используя C #, и один из веб-сайтов, с которого мы получаем новости 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?

привет.

1 Ответ

2 голосов
/ 19 февраля 2011

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

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

или

//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, которая даст вам краткий запрос.

привет.

...