【问题标题】:CSV is not parsing properly. Gives 'Unquoted fields do not allow \r or \n 'CSV 未正确解析。给出 '未引用的字段不允许 \r 或 \n '
【发布时间】:2018-11-23 20:48:05
【问题描述】:

我正在使用 selenium 和 python 进行一些抓取。 Python2.7 操作系统- Mac 10.14 Mojave

错误是 - 未加引号的字段不允许 \r 或 \n(第 2 行)。

这意味着换行问题。我这样做了:

des = driver.find_element_by_xpath('//*[@id="descriptiontext"]/div/div/div')
            .get_attribute('innerHTML')
            .encode('ascii', 'ignore')
            .decode('ascii')
regex=re.compile('<a.*?a>') #taking out <a> tags
des1 = str(re.findall(regex, des)[0])
des = des.replace(des1,'')

with open("new.csv", "a") as myfile:
  myfilewriter = csv.writer(myfile)

  if len(menuList)==2:
    print (des)
    type,tags=blank,blank
    published='TRUE'
    option1 = menuList.items()[0][0]
    option1Val=  menuList.items()[0][1][0].items()[0][0]
    option2 = menuList.items()[1][0]
    option2Val=menuList.items()[1][1][0].items()[0][0]
    option3, option3Val= blank,blank
    sku = directory
    gram = '0'
    v_inventory='shopify'
    v_inventory_quantity= '100'
    v_inventory_policy= 'continue'
    v_fulfillment_service='manual'
    try:
        v_price = float(menuList.items()[1][1][0].items()[0][1]) + 10.99
    except:
        v_price = 10.99 + price
    v_compare_price = blank
    v_shipping= 'TRUE'
    v_taxable= 'FALSE'
    v_barcode = blank
    v_imgsrc = blank
    img_pos = blank
    img_alt = blank
    giftCard= 'FALSE'
    seo_title,seo_des,gShopping,gSG,gSA,gMPN,gAd,gAdL,gSC,gCP,gSCL,gSCL1,gSCL2,gSCL3,gSCL4,v_image= blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank,blank
    v_weight_unit ='lb'
    v_tax, cpi=blank,blank
    myfilewriter.writerow([handle,title,des,vendor,type,tags,published,option1,option1Val,option2,option2Val,option3,option3Val,sku,gram,v_inventory,v_inventory_quantity,
                           v_inventory_policy,v_fulfillment_service,v_price,v_compare_price,v_shipping,v_taxable,
                           v_barcode,v_imgsrc,img_pos,img_alt,giftCard,seo_title,seo_des,gShopping,gSG,gSA,gMPN,gAd,gAdL,gSC,gCP,gSCL,gSCL1,gSCL2,gSCL3,gSCL4,v_image,
                           v_weight_unit,v_tax,cpi])

不知道我还能做什么。 “des”的输出是产品描述的 html。因此,显示“des”的 csv 版本会呈现 html 本身。

请留下您的电子邮件 ID,我很乐意发送 csv 文件和报废代码。

【问题讨论】:

  • 向我们展示整个错误消息。另外,我看不到这段代码在哪里使用 CSV。
  • 我的猜测是您的 csv 文件中有一个 \r\n 不在引号中。即你有:col1\n,col2,col3。当你应该拥有:"col1\n",col2,col3。向我们展示更多代码并向我们展示完整的错误以及错误所指的行。

标签: python python-2.7 selenium selenium-webdriver


【解决方案1】:

更新:: 我的天啊!从字面上看,浪费了2天的时间。问题是因为 Mac。当使用 Windows 逗号分隔值 (.csv) 时,它可以工作!....疯狂...谁能启发我,有什么区别?

【讨论】:

    猜你喜欢
    • 2021-11-11
    • 2012-03-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多