xpath
  • scrapy
  • 2016-10-19 2 views 2 likes 
    2

    enter image description hereПопытка получить строки таблицы с Scrapy XPath

    У меня есть некоторые HTML, который выглядит как на скриншоте. Я хочу получить строки таблицы. У меня есть:

    for table_row in response.selector.xpath("//*[@id = 'ctl00_ContentPlaceHolder1_CaseDetailParties1_gvParties']"): 
        print table_row 
    

    В командной строке я попытался:

    >>> table_row 
    Out[5]: <Selector xpath="//*[@id = 'ctl00_ContentPlaceHolder1_CaseDetailParties1_gvParties']" data=u'<table class="ParamText" cellspacing="0"'> 
    >>> table_row.xpath('/tbody') 
    Out[6]: [] 
    >>> table_row.xpath('//tbody') 
    Out[7]: [] 
    

    Почему я не могу выбрать TBODY?

    ответ

    4

    tbody is generated by the browser, вы не получаете его с загрузчиком Scrapy. Просто подходите к элементам tr:

    table_row.xpath('.//tr') 
    
    +0

    Вау, я думал, что сойду с ума. Спасибо! – user61629

    +0

    Если я могу, у меня есть последующее: Есть несколько вложенных таблиц внутри tr элементов в этой таблице. Как я могу получить только дети tr в других словах, table_row.xpath ('// tbody/tr'), если tbody существует – user61629

    +0

    @ user61629 ах, тогда вы должны фильтровать верхний уровень 'tr', если я вас правильно понимаю, например 'table_row.xpath ('./ tr')' .. – alecxe

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