【问题标题】:Scrapy - how to index and extract from html tablesScrapy - 如何从 html 表中索引和提取
【发布时间】:2021-10-28 05:21:07
【问题描述】:

这是我正在抓取的网页:http://laxreports.sportlogiq.com/nll/GS2200.html

下面是我创建的蜘蛛的代码:

import scrapy    

class MatchesSpider(scrapy.Spider):
    name = 'matches'
    allowed_domains = ['laxreports.sportlogiq.com']
    start_urls = ['http://laxreports.sportlogiq.com/nll/GS2200.html']

    def parse(self, response):
        tables = response.xpath('//table')
        print(tables)
        table = tables[0].xpath('//tbody')

我看到已为此 XPath 表达式选择了 22 个表,但我的问题是我不完全了解如何选择每个单独的表并提取其内容。

我是 scrapy 的初学者,在网上搜索解决方案后,我看到的只是如何使用类或 ID 选择表,在这种情况下,这不是一个选项。

【问题讨论】:

  • 无法查看您的网站。它说访问被拒绝。
  • 我去掉了url后面的斜杠,现在可以查看页面了。或者尝试转到nll.com/schedule/scores 并将鼠标悬停在其中一场比赛上,您应该会看到一个标有“游戏回顾”的按钮出现。点击它可以看到我正在谈论的页面。
  • 你的意思是你想要所有的表?那你为什么不简单地循环它们呢?
  • 我是这方面的初学者,我不知道如何遍历它们。

标签: html xpath scrapy


【解决方案1】:

你可以只使用 pandas 来做到这一点

代码:

import pandas as pd

dfs = pd.read_html('https://laxreports.sportlogiq.com/nll/GS2200.html')
df = dfs[10]#.to_csv('d.csv', index = False)

print(df)

输出:

  0              1  2   3    4    5   6     7   8   9   10    11     12
0     #           Name  G   A  +/-  PIM   S  SOFF  LB   T  CT    FO    TOF
1     2       W.Malcom  0   0    0    0   1     1   1   4   0     -  11:28
2     3      T.Edwards  0   0   -2    2   0     0   8   1   2  7-18  20:28
3     4     J.Sullivan  0   0   -3    2   0     0   3   0   0     -  15:29
4    11       T.Stuart  0   0   -3    0   0     0   4   1   1     -  21:09
5    14      W.Jeffrey  0   1   -1    0   0     0   9   2   1     -  19:17
6    16          R.Lee  2   1    2    0   9     4   6   6   1     -  23:13
7    17       C.Wardle  2   0    1    2   5     3   4   2   2     -  20:55
8    18    R.Hope  (A)  0   0   -2    2   0     0  11   0   0     -  22:02
9    20        J.Ruest  3   2    3    0   8     1   3   2   0     -  24:16
10   23       J.Gilles  0   0   -1    0   0     0   4   0   3     -  14:44
11   27     S.Carnegie  0   0   -1    0   0     0   3   0   0     -  12:19
12   37  D.Coates  (C)  0   0    0    0   1     0   1   0   0   1-1   2:31
13   51   E.McLaughlin  0   5    2    0   7     3   5   7   0     -  21:41
14   55      D.Kinnear  0   1    2    0   2     0   2   1   0   0-2  10:14
15   67       K.Killen  1   1    0    0   6     1   4   2   0     -  16:42
16   82  J.Cupido  (A)  0   1   -1    0   3     0   4   1   0     -  20:52
17   86        J.Lintz  0   1   -1    0   0     0   4   0   1     -  19:26
18   30      T.Carlson  0   0  NaN    0   0     0   0   0   0     -    NaN
19   45         D.Ward  0   0  NaN    0   0     0   0   1   0     -    NaN
20  NaN        Totals:  8  13  NaN    8  42    13  76  30  11  8-21    NaN

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 2018-11-16
  • 1970-01-01
相关资源
最近更新 更多