【问题标题】:Scrapy not finding tableScrapy找不到表
【发布时间】:2015-10-31 11:32:52
【问题描述】:

我正在尝试从http://www.oddsportal.com/basketball/usa/nba-2014-2015/results/ 中的表中抓取数据

我想要的特定表有 class="table-main"

从 scrapy response.xpath('//table') 运行

In [28]:  response.xpath('//table')
Out[28]:
[<Selector xpath='//table' data=u'<table>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t<td c
lass="bol'>,
 <Selector xpath='//table' data=u'<table class="table-main top-event">\n\t\t\t'>
,
 <Selector xpath='//table' data=u'<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>\n\t\
t\t\t\t\t\t<tab'>,
 <Selector xpath='//table' data=u'<table class="rm-bonus-offer">\n\t\t\t\t\t\t\t
\t<'>,
 <Selector xpath='//table' data=u'<table>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>\n\t\
t\t\t\t\t\t<tab'>,
 <Selector xpath='//table' data=u'<table class="rm-bonus-offer">\n\t\t\t\t\t\t\t
\t<'>]

不返回我希望抓取的表。任何人都可以帮忙吗?

【问题讨论】:

  • 您可以使用'id("tournamentTable")' 获得它,但请检查其中的信息是否是动态加载的。使用firebug(或类似的东西)检查哪个请求(另一个来自原始)包含tournamentTable

标签: python-2.7 web-scraping scrapy ipython


【解决方案1】:

只需使用...

sel.xpath('.//table[starts-with(@class, "table-main")]')

sel.xpath('.//div[@id="top-event-box"]/table')

【讨论】:

    【解决方案2】:

    我设法通过 response.xpath('//*[@id="tournamentTable"]') 获得表格

    【讨论】:

      【解决方案3】:
      Selector(response).xpath('//table[contains(@class, "table-main")]').extract_first()
      

      我已经测试过了,它可以工作。

      在 scrapy 文档中查看 Selectors

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        • 2017-05-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多