【问题标题】:No xpath results in scrapy没有xpath导致scrapy
【发布时间】:2016-03-05 19:49:16
【问题描述】:

我正在使用此代码。最后两个值是这样的,因为我正在测试它们中的任何一个是否会起作用 - 但它们不会。

def parse_again(self, response):
    sel = Selector(response)
    meta = sel.xpath('//div[@class="LWimg"]')
    items = []
    for m in meta:
        item = PageItem()
        item['link'] = response.url
        item['Stake'] = m.select('//div[@class="stakedLW"]/h1/text()').extract()
        item['Value'] = m.select('//p[@class="value"]/text()').extract()
        item['Value'] = m.select('//div[@class="value"]/span/span/text()').extract()
        items.append(item)
    return items

从这个 html 源代码中检索数据

   <div class="LWimg">               
            <div class="stakedLW">              
                <span class="title">Stake</span>
                <span class="value">5.00</span>
                <span class="currency">&#128;</span>

我的items.py 看起来像这样

from scrapy.item import Item, Field

class Page(Item):
    Stake = Field()
    Value = Field()

问题是没有检索到数据,即最终没有任何内容保存到.csv

欢迎任何意见。

【问题讨论】:

  • 您在 html 中没有&lt;p class="value"&gt;&lt;div class="value"&gt;,因此您无法获得p[@class="value"]div[@class="value"]。试试//span[@class="value"]/text()
  • 它不起作用...我的意思是我在 file.csv 中没有得到任何结果
  • 编辑问题并添加 URL。
  • @eLRuLL 为什么你认为这适合 Code Review?不是,因为它是损坏的代码。
  • 好吧,我唯一的问题是数据没有保存到 .csv 文件中。虽然,这里似乎没有人能够解决这个问题,所以我不得不尝试其他方法和不同的代码,直到我找到问题所在。至于学习python和scrapy,如果我知道这门语言,我就不会在这里向任何人寻求帮助。这就是我最终决定在这里注册并希望能从知道它的人那里得到帮助的原因之一,因为我使用谷歌几天都无法解决它。很明显,我是新手。如果不是,我希望现在是。 @eLRuLL

标签: python html xpath scrapy


【解决方案1】:

您正在填充Value 字段两次,所以只有最后一个可以工作,我认为正确的方法应该是:

item['Value'] = response.xpath('//div[@class="stakedLW"]//span[@class="value"]/text()').extract_first()

其他字段不是必需的,只需 link 一个。

【讨论】:

  • eLRuLL 是 python 和 scrapy 的人!再次感谢您的所有帮助,并感谢该社区的其他人。很高兴我在这里注册。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多