2013-08-06 4 views
1

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

#! /usr/bin/python 

import urllib 
from lxml import html 

url="http://kforce.com/Jobs/Search.aspx?Location=&Specialty=Technology-Jobs&Keyword=" 

pageHtml = html.fromstring(urllib.urlopen(url).read()) 

#id="Body_SearchResultsControl_grdJobs" 

#row class jobResultsAlternateRow || jobResultsRowStyle 

jobs = pageHtml.xpath("//table[@id='Body_SearchResultsControl_grdJobs']/tr[@class='jobResultsAlternateRow' or @class='jobResultsRowStyle']"); 

for i in jobs: 
     cols = i.getchildren() #get all table data cells 
     print(cols[0].xpath('//a/@href')) 
     exit(0) 

xpath применяется ко всем ссылкам на странице, а не только к столбцу, к которому я привязал его. Я не очень хорошо знаком с XPath, но я не уверен, является ли это запросом XPath или я использую этот запрос xpath.

ответ

1

Вы должны использовать .//, если вы хотите, чтобы начать поиск внутри элемента вместо корня:

print(cols[0].xpath('.//a/@href')) 

Печать ['Job.aspx?job=1696~EQG~1259184T1~99&keyword='] - Я думаю, что это то, что вы хотели.

Надеюсь, что это поможет.

+0

ha! Я добавлю это в свой контрольный список. TY! Я выберу это как ответ за 9 минут (Stackoverflow !!!!) – macha

+0

Отлично, спасибо! – alecxe

Смежные вопросы