2016-10-19 10 views
2

enter image description hereScrapyのXPathの

私はスクリーンショットのように見えるいくつかのHTMLを持っていると、テーブルの行を取得しようとしています。私はテーブルの行を取得したい。私が持っている:

>>> 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を選択することができません:私が試した、コマンドラインで

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

答えて

4

tbodygenerated by the browserの場合、Scrapyダウンローダでは取得できません。 trの要素にまっすぐ入る:

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

うわー、私は狂っていたと思った。ありがとうございました! – user61629

+0

私ができる場合、私はフォローアップがあります:このテーブルのtr要素の中に複数のネストされたテーブルがあります。tbodyの場合、table_row.xpath( '// tbody/tr')存在していた – user61629

+0

@ user61629ああ、もしあなたが正しく理解したら、あなたはトップレベルの 'tr'をフィルタリングするべきです。 'table_row.xpath( './ tr')' .. – alecxe

関連する問題