【问题标题】:Clean Python Scrapy Output清理 Python Scrapy 输出
【发布时间】:2015-12-22 21:44:09
【问题描述】:

我需要帮助清理 Python Scrapy 输出。我有以下获取元素内容的简单蜘蛛。

class ScrapyscrapSpider (BaseSpider) :
  name = "ss"
  allowed_domains = ["purecss.io"]
  start_urls = ['http://purecss.io/tables/']

  def parse(self, response) :
    sel = Selector (response)
    item = ScrapscrapyItem ()
    item['Heading'] = str (sel.xpath('/html/body/div[2]/div/div[1]/div/div[1]/h1').extract ())
    item['Content'] = str (sel.xpath ('//table[@class = "pure-table"]//tr[1]/td[2]').extract ())
    item['Source_Website'] = "http://purecss.io"
    return item

命令

scrapy crawl ss -o data.csv -t csv

输出

Content,Heading,Source_Website
"[u'<td>Honda</td>', u'<td>Honda</td>']",,

我只想将“Honda”打印到 csv 文件并删除其他所有内容。

extract()[1] 仍然给我“[u'Honda', u'Honda']”,,

【问题讨论】:

  • .extract() 返回一个列表,获取列表的第一个元素。
  • extract ()[1] 仍然给我 "[u'Honda', u'Honda']",,
  • 更新您的问题
  • 我认为您应该包含更多代码。使用 sn-ps 有时很好,但您的 sn-p 不会产生您的输出。
  • sel.xpath('/html/body/div[2]/div/div[1]/div/div[1]/h1/text()').extract()[0 ]

标签: python csv xpath scrapy output


【解决方案1】:

你可以按如下方式制作xpath

item['Heading'] = str (sel.xpath('/html/body/div[2]/div/div[1]/div/div[1]/h1/text()').extract ())
item['Content'] = str (sel.xpath ('//table[@class = "pure-table"]//tr[1]/td[2]/text()').extract ())

【讨论】:

    猜你喜欢
    • 2015-10-21
    • 2015-11-10
    • 2017-12-17
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多