如何使用Scrapy选择器处理不一致的标记?

病毒

我想从网站上获得“ Play by Play”信息:

http://www.euroleague.net/main/results/showgame?gamecode=197&seasoncode=E2015#!playbyplay

棘手的标记代码:

    <tr>
        <td>8</td>
        <td>Def Rebound</td>
        <td>13 - 13</td>
        <td>Zalgiris Kaunas</td>
        <td>VECVAGARS, KASPARS</td>
    </tr>
    <tr class="play">
        <td>8</td>
        <td>Two Pointer</td>
        <td>15 - 13</td>
        <td>Zalgiris Kaunas</td>
        <td>VECVAGARS, KASPARS</td>
    </tr>

在游戏中获得分数时,它将使用:

<tr class="play">

反而 :

<tr>

...以视觉方式分离信息。我想得到“一个又一个的事件”,而我正在使用的代码无法处理此问题:

for sel in response.xpath('//div[@class="wp-field wp-field-content table-responsive"]//div/table/tbody/tr'):
    item['Minute'] = sel.xpath('td[1]/text()').extract()

我收到的结果是:

{'Event': [u'Def Rebound'],
 'Minute': [u'19'],
 'Player': [u'KIRILENKO, ANDREI'],
 'Res_h': [u'31 - 38'],
 'Res_v': [u'31 - 38'],
 'Team_player': [u'CSKA Moscow']}

{'Event': [],
 'Minute': [],
 'Player': [],
 'Res_h': [],
 'Res_v': [],
 'Team_player': []}

当代码必须处理“ tr”的“ play”类时,将显示空值。

问题:

当我在某些随机情况下有两个可能的标记选项时,该怎么办?

帕德拉克·坎宁安(Padraic Cunningham)

这将获得您想要的一切:

In [53]: l=['Event',                               
 'Minute',
 'Player',
 'Res_h',
 'Res_v', 'Team_player']

In [54]: table = r.xpath("//table[@class='table']")

In [55]: for tr in table.xpath(".//tr[position() > 1]"):
           assert dict(zip(l, tr.xpath("./td//text()").extract()))  != {}

....:     
In [56]: 

它跳过标题行并拉出所有其余部分,l中元素的顺序是错误的,但是这个想法是正确的,所以我将让您找出想要的内容和位置,这是由tr.xpath("./td//text()"以下内容返回的代码段

[u'15', u'Shot Rejected', u'29 - 25', u'Zalgiris Kaunas', u'HANLAN, OLIVIER']
[u'15', u'Block', u'29 - 25', u'Real Madrid', u'NOCIONI, ANDRES']
[u'15', u'Off Rebound', u'29 - 25', u'Zalgiris Kaunas', u' ']
[u'15', u'Two Pointer', u'31 - 25', u'Zalgiris Kaunas', u'VENE, SIIM-SANDER']
[u'15', u'Assist', u'31 - 25', u'Zalgiris Kaunas', u'RANDLE, JEROME']
[u'16', u'Minute', u'31 - 25', u' ', u' ']
[u'16', u'Three Pointer', u'31 - 28', u'Real Madrid', u'NOCIONI, ANDRES']
[u'16', u'Assist', u'31 - 28', u'Real Madrid', u'LLULL, SERGIO']
[u'16', u'Two Pointer', u'33 - 28', u'Zalgiris Kaunas', u'RANDLE, JEROME']
[u'16', u'Foul', u'33 - 28', u'Zalgiris Kaunas', u'SAJUS, MARTYNAS']
[u'16', u'Foul Drawn', u'33 - 28', u'Real Madrid', u'LLULL, SERGIO']
[u'16', u'Free Throw In', u'33 - 29', u'Real Madrid', u'LLULL, SERGIO']
[u'16', u'Free Throw In', u'33 - 30', u'Real Madrid', u'LLULL, SERGIO']
[u'16', u'In', u'33 - 30', u'Zalgiris Kaunas', u'JANKUNAS, PAULIUS']

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CSS伪选择器的行为不一致:已检查机会div位置

来自分类Dev

LightSwitch HTML详细信息选择器与自动完成不一致

来自分类Dev

生成PDF时,删除@page CSS选择器不一致的Flyingsaucer默认填充

来自分类Dev

野生动物园5中的:not(:checked)选择器结果不一致

来自分类Dev

Msftedit似乎在文件末尾处理paragph标记(\ par)不一致

来自分类Dev

如何使用量角器茉莉花处理角度应用程序的不一致等待问题

来自分类Dev

Antlr4不一致的标记化

来自分类Dev

跨浏览器使用getElementsByTagName获取脚本标记不一致

来自分类Dev

Cassandra与批处理更新不一致

来自分类Dev

XQuery中的空白处理不一致?

来自分类Dev

通过更新处理CSS过渡不一致

来自分类Dev

反应事件处理(onClick)不一致

来自分类Dev

结果不一致-更新与选择

来自分类Dev

选择多选元素时行为不一致

来自分类Dev

选择名称具有不一致的行为

来自分类Dev

嵌套选择查询语法不一致

来自分类Dev

Groovy闭包中使用的“最终”修饰符的处理不一致

来自分类Dev

TreeSet比较器的执行不一致

来自分类Dev

CSS-Linter与美化器不一致

来自分类Dev

Xcode不一致的编译器错误

来自分类Dev

装饰器中的参数范围不一致

来自分类Dev

启动时如何显示不一致的bot服务器计数?

来自分类Dev

使用Surface的MediaCodec编码器在各种设备上不一致崩溃

来自分类Dev

使用简单的html dom解析器的元素不一致导致问题

来自分类Dev

使用转换器BertModel和BertTokenizer的矢量表示不一致

来自分类Dev

使用Surface的MediaCodec编码器在各种设备上不一致崩溃

来自分类Dev

错误 - 不一致的返回类型(使用闭包编译器 Promise)

来自分类Dev

如何呈现不一致的数据

来自分类Dev

如何具有“等于”不一致的TreeSet

Related 相关文章

  1. 1

    使用CSS伪选择器的行为不一致:已检查机会div位置

  2. 2

    LightSwitch HTML详细信息选择器与自动完成不一致

  3. 3

    生成PDF时,删除@page CSS选择器不一致的Flyingsaucer默认填充

  4. 4

    野生动物园5中的:not(:checked)选择器结果不一致

  5. 5

    Msftedit似乎在文件末尾处理paragph标记(\ par)不一致

  6. 6

    如何使用量角器茉莉花处理角度应用程序的不一致等待问题

  7. 7

    Antlr4不一致的标记化

  8. 8

    跨浏览器使用getElementsByTagName获取脚本标记不一致

  9. 9

    Cassandra与批处理更新不一致

  10. 10

    XQuery中的空白处理不一致?

  11. 11

    通过更新处理CSS过渡不一致

  12. 12

    反应事件处理(onClick)不一致

  13. 13

    结果不一致-更新与选择

  14. 14

    选择多选元素时行为不一致

  15. 15

    选择名称具有不一致的行为

  16. 16

    嵌套选择查询语法不一致

  17. 17

    Groovy闭包中使用的“最终”修饰符的处理不一致

  18. 18

    TreeSet比较器的执行不一致

  19. 19

    CSS-Linter与美化器不一致

  20. 20

    Xcode不一致的编译器错误

  21. 21

    装饰器中的参数范围不一致

  22. 22

    启动时如何显示不一致的bot服务器计数?

  23. 23

    使用Surface的MediaCodec编码器在各种设备上不一致崩溃

  24. 24

    使用简单的html dom解析器的元素不一致导致问题

  25. 25

    使用转换器BertModel和BertTokenizer的矢量表示不一致

  26. 26

    使用Surface的MediaCodec编码器在各种设备上不一致崩溃

  27. 27

    错误 - 不一致的返回类型(使用闭包编译器 Promise)

  28. 28

    如何呈现不一致的数据

  29. 29

    如何具有“等于”不一致的TreeSet

热门标签

归档