簡體   English   中英

scrapy,我試圖刪除提取到csv文件的空行

[英]scrapy, I am trying to remove empty lines that are extracted to a csv file

我從一個頁面提取數據,當然我必須更深入,但我仍然堅持第一頁。 這是我的代碼:

from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from street.items import HstreetItem

class MySpider(CrawlSpider):
name = "go-h"
allowed_domains = ["http://somedomain.com"]
start_urls = ["http://somedomain.com"]

def parse(self,response):
    #response = response.replace(body=response.body.replace('\n', '')) # doesn't work
    hxs = HtmlXPathSelector(response)
    details = hxs.select('//tr')
    items = []
    #n = 0
    for detail in details:
        item = HondastreetItem()
        item['url'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/@href | td[@class="Model_LineModel_even"]/a/@href').extract()).strip()
        item['model'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/text() | td[@class="Model_LineModel_even"]/a/text()').extract())
        item['year'] = "".join(detail.select('td[@class="Model_LineYear_odd"]/text() | td[@class="Model_LineYear_even"]/text()').extract())            
        items.append(item)
    return items

代碼工作正常,它通過我的pipleine將數據提取到csv文件中,就像它應該:

cell 1 | cell2 | cell3
url    | model | year
 .
 .
 .

問題是我的csv文件中有很多空行。 在開頭恰好是17行,然后在我的csv文件的填充行之間的空行。 我認為爬行表前面的幾個表和我不需要的爬行表中的一些行(比如類別名稱)導致這種情況。 我最近24小時都遇到了問題:(我一直在嘗試通過類似問題找到的所有解決方案,但對我來說沒有任何效果。

感謝幫助!

我對Python很陌生,並試圖了解scrapy。

根據我的理解,你必須附加空行。 所以你可能會嘗試在append語句之前檢查'item'是否為空,例如,

if not (item['url'] == "" and item['model'] == "" and item['year'] == ""):
    items.append(item)

如果我誤解了這個問題,請忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM