0

これは、抽出したい www.example, com のソース コードです。抽出する必要があるものを誰かが説明できる場合。

<table>
    <tr>
        <td colspan="5" style="text-align:left;padding-left:4px;" class="category"><img-src="http://www.example.com/images/menu.gif">TEXT in td 1 </td>
    </tr>
    <tr>
        <td class="date" colspan="5">TEXT in td 2</td>
    </tr>
    <tr>
        <td style="test-align:left;width:40px;">TEXT in td 3</td>
        <td style="padding-right:4px; width:180px;text-align:right">TEXT in td 4</td>
        <td style="width:40px;text-align:center"> TEXT in td 5</td>
        <td style="padding-left:5px; width:180px;text-align:left">TEXT in td 6</td>
        <td style="width:40px;text-align:center"></td>
    </tr>
</table>

これは、抽出したい私のコードです。それぞれ別のテキストを抽出したいのですが、テキスト 4、5、6 はうまく描画されています。テキスト 1、2、3 を抽出する方法を誰か教えてください。前もって感謝します!

    item['TEXT in td 1'] = app.select('//td[2]//text()').extract()
    item['TEXT in td 2'] = app.select('//td[3]/text()').extract()
    item['TEXT in td 3'] = app.select('td[4]/text()').extract()
    item['TEXT in td 5'] = app.select('td[3]//text()').extract()
    item['TEXT in td 4'] = app.select('td[2]/text()').extract()
    item['TEXT in td 6'] = app.select('td[4]/text()').extract()

This a extract Scrapy:

2013-08-04 11:27:11+0300 [app] DEBUG: Scraped from <200 />
        {'TEXT in td 1': [u'', u'TEXT in td 1'],
         'TEXT in td 2': [u'August 04'],
         'TEXT in td 6': [],
         'TEXT in td 5': [],
         'TEXT in td 4': [],
         'TEXT in td 6': []}
2013-08-04 11:27:11+0300 [app] DEBUG: Scraped from <200 />
        {'TEXT in td 1': [u'', u'TEXT in td 1'],
         'TEXT in td 2': [u'August 04'],
         'TEXT in td 6': [u'TEXT in td 6'],
         'TEXT in td 5': [u'TEXT in td 5'],
         'TEXT in td 4': [u'TEXT in td 4'],
         'TEXT in td 6': [u'TEXT in td 6']}
4

1 に答える 1

1

これはおそらく次のように行われます (私はスクレイピーを持っていませんが、Xpaths に問題があります)

 item['TEXT in td 1'] = app.select('//table/tr[1]/td[1]//text()').extract()
 item['TEXT in td 2'] = app.select('//table/tr[1]/td[2]/text()').extract()
 item['TEXT in td 3'] = app.select('//table/tr[2]/td[1]/text()').extract()
 item['TEXT in td 5'] = app.select('//table/tr[2]/td[2]/text()').extract()
 item['TEXT in td 4'] = app.select('//table/tr[3]/td[1]/text()').extract()
 item['TEXT in td 6'] = app.select('//table/tr[3]/td[2]/text()').extract() 

私たちがやっていることは(単一のテーブルを想定して)テーブルの各行をフェッチしていることです(tr [1]、tr [2]などを観察し、これらの行内のセルにアクセスしてtd [1]、td [2]を観察します)など

于 2013-08-04T09:43:07.547 に答える