尝试将列表导出到包含符号的csv文件时,出现以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character '\xa3' in position 77: ordinal not in range(128)
我无法以相同的方式将符号传递到csv文件时再现该问题。因此,这使我相信,有某种编码错误发生。你知道吗
我使用请求抓取网页,然后将html传递给lxml,通过xpath在网页中查找元素。你知道吗
在我通过使用这行代码获得所需的网页部分后,即项目价格:
itemPrice = productParser.xpath('//*[@id="prcIsum"]')
通常我会把这个还给你:
[<Element span at 0x112f54db8>]
但我将原始代码改为:
itemPrice = productParser.xpath('string(//*[@id="prcIsum"])')
因此,我认为string()引起了一个问题,但是我找不到一种方法来将html转换成可读的格式,例如(£5),并且能够导出到csv文件并实际能够读取它。你知道吗
任何帮助都将不胜感激。你知道吗
2018年1月2日更新: 下面的代码产生相同的复制错误。 使用Python3.6.3,Mac Os High Sierra。你知道吗
import requests
import csv
from lxml import html
exampleUrl = "https://www.ebay.co.uk/itm/JVC-LT-32C675-32-HD-Ready-LED-Smart-TV-Built-in-DVD-Player-Freeview-HD-Black/122517378430"
productHtml = requests.get(exampleUrl,timeout=10)
productParser = html.fromstring(productHtml.text)
itemTitle = productParser.xpath('string(//*[@id="itemTitle"]/text())')
itemPrice = productParser.xpath('string(//*[@id="prcIsum"])')
numberSold= productParser.xpath('string(//span[contains(@class,"vi-qtyS")]//a)')
itemDetails = []
itemDetails.extend((itemTitle,itemPrice.strip(),numberSold.strip(" sold")))
with open("csc.csv","w") as file:
writer=csv.writer(file)
writer.writerow(itemDetails)
file.close()
目前没有回答
相关问题 更多 >
编程相关推荐