2017-03-11 11 views
-1

最近、Scrapyを使い始めたばかりです。私はここで順位表を見つけることができない。スクリーニングがテーブルcssを見つけられない

http://www.baseball-reference.com/leagues/MLB/2016-standings.shtml#all_expanded_standings_overall

それは、ID =「#expanded_standings_overall」を持っているが、私は私のクモまたはシェルでそれを見つけることができません。 #all_expanded_standings_overallの結果を得ることができました。そのIDを持つdivがあるからです。これをシェルで抽出すると、私が望むテーブルが表示されますが、その中でさえ、私は 'tbody'や 'tr'やそれ以外のものを見つけることができません。

+0

あなたはあなたが間違っていた場所を確認できるようにあなたの試行を投稿できますか? –

+0

@Hannah、私はあなたに何を見せてもわからないのですか?私がscrapy shell thatsite.comを実行してからresponse.css( '#expanded_standings_overall')を入力すると、[]が返されます。私はそれがなぜそのIDを見つけることができなかったのかと完全に迷っていますか?これは私が既にこのドメイン全体でいくつかの類似のテーブルを配置したのと同じ方法です。 –

答えて

1

ページ・ソースの表情を持っている場合は、該当のID(expanded_standings_overall

<div class="placeholder"></div> 
<!-- 
    <div class="table_outer_container"> 
     <div class="overthrow table_container" id="div_expanded_standings_overall"> 
      <table class="sortable stats_table" id="expanded_standings_overall" data-cols-to-freeze=2> 
       <caption>MLB Detailed Standings</caption> 
        ... sweet data here .. 
       </table> 
     </div> 
    </div> 
--> 
</div> 

HTMLのコメントは、私たちの罪のないスクレーパーにコンテンツを非表示にするには、トリックのようだことを確認。 )

ファイヤーバグはこのコメントを表示していないのは興味深いです... ...?

この問題を克服する1つのアプローチは、コメントを抽出して削除し、コメント内のデータを処理することです。例えば:あなたは私がCSS上XPATHセレクタを好むが、彼らは、原理的には同じですご覧のよう

$ scrapy shell www.baseball-reference.com/leagues/MLB/2016-standings.shtml 
>>> view(response) 
>>> from scrapy.selector import Selector 
>>> sel = Selector(response) 
>>> sel.xpath('//table[@id="expanded_standings_overall"]') 
[] 
>>> import re 
>>> regex = re.compile(r'<!--(.*)-->', re.DOTALL) 
>>> for comment in sel.xpath('//comment()').re(regex): 
>>>  table = Selector(text=comment).xpath('//table[@id="expanded_standings_overall"]') 
>>>  print(table) 
... 
[] 
[] 
[<Selector xpath='//table[@id="expanded_standings_overall"]' data='<table class="sortable stats_table" id="'>] 
[] 
[] 

https://doc.scrapy.org/en/latest/topics/selectors.htmlを参照してください。

+0

ha!素敵な野郎、チップのおかげで。私は迷った。 –

+0

@ JordanWayneCrabbあなたの問題を解決した場合は、おそらく答えとして受け入れられるとしますか? – rfelten

関連する問題