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 am 绘制得很好。文本 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

这可能会按如下方式完成(我没有scrapy,但你的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 回答