0

私は pyquery をあまり使用していないので、この質問はおそらく簡単ですが、たくさんのものを試してみましたが、行き詰まっています。

テーブルから情報を取得するために PyQuery を使用しています。これが私のテーブルの始まりです:

<table class="sortable" border="1" cellspacing="1" cellpadding="1" bordercolor="#333333">
    <thead>
        <tr class="headerfont">
            <td><div align="center">Year</div></td>
            <td><div align="center">Name</div></td>
            <td><div align="center">College</div></td>
            <td><div align="center">POS</div></td>
            <td align="center"><div align="center">Height <span style="font-size:10px;">(in)</span></div></td>
            <td align="center"><div align="center">Weight <span style="font-size:10px;">(lbs)</span></div></td>
            <td>Hand Size <span style="font-size:10px;">(in)</span></td>
            <td>Arm Length <span style="font-size:10px;">(in)</span></td>
            <td><div align="center"><span style="font-size:14px;">Wonderlic</span></div></td>
            <td><div align="center">40 <span style="font-size:12px;">Yard</span></div></td>
            <td><div align="center"><span style="font-size:12px;">Bench Press</span></div></td>
            <td style="font-size:14px;"><div align="center">Vert Leap <span style="font-size:10px;">(in)</span></div></td>
            <td style="font-size:14px;"><div align="center">Broad Jump <span style="font-size:10px;">(in)</span></div></td>
            <td>Shuttle</td>
            <td>3Cone</td>
            <td>60Yd Shuttle</td>
        </tr>
    </thead>
    <tbody>

最終行以降も続きますが、内容は以上です。だから、私が実行した場合:

from pyquery import PyQuery as pq
table = pq(*stuff above*)
for c in table('thead tr td'):
    print c.text

私は得る:

None
None
None
None
None
None
Hand Size 
Arm Length 
None
None
None
None
None
Shuttle
3Cone
60Yd Shuttle

明らかに、「なし」のものは正しくないため、必要ありません。のさまざまなコンボを試しthead tr td divましたが、取得しているものを取得できません。次に、最初に div のリストを作成し、それらを数えてリストを結合しようとしましたが、非常にハッキーなようで、Wonderlic も得られません。また、ドキュメントには を使用するように書かれているようですがtext()、括弧を追加しようとするとTypeError: 'NoneType' object is not callableが発生します。どんな洞察も大歓迎です。ありがとう!

4

2 に答える 2

1

したがって、.items() をクエリの最後に追加して、html 要素の代わりに pyquery アイテムを取得する必要があります。c.text() のようなことをしたら、エラーをスローする代わりに機能しました。

columns = [c.text() for c in table('thead tr td').items()]

意図したとおりに pyquery API を使用するため、これははるかに優れていました。

于 2016-12-31T05:00:37.407 に答える