我正在使用lxml从网站上刮价,我想使用openpyxl将该价格插入现有的Excel文件中。当我运行代码时,我收到错误“ValueError:无法将['$ 364']转换为Excel”('$ 364是报废价格)。我该如何解决?似乎第11行的代码:sheet['A1'] = price
就是问题所在。我的enitre代码如下。
from lxml import html
import requests
page = requests.get('http://www.randomlengths.com/Woodwire/RL-Lbr-Pnl/')
tree = html.fromstring(page.content)
price = tree.xpath('//*[@id="main-frame"]/div/div[1]/table/tbody/tr[2]/td[2]/strong/text()')
print(price)
import openpyxl
xfile = openpyxl.load_workbook('C:/Users/noah.merkousko/randomlengthslumber.xlsx')
sheet = xfile.get_sheet_by_name('Framing Lumber')
sheet['A1'] = price
xfile.save('random lengths lumber test.xls')
“ValueError:无法将['$ 364']转换为Excel”告诉您错误。您正在尝试将列表['$364']
放入包含值的单元格中。您可以通过在将其放入Excel时进行索引或在从在线解析时进行索引来解决此问题。
选项1:
price = tree.xpath('//*[@id="main-frame"]/div/div[1]/table/tbody/tr[2]/td[2]/strong/text()')[0] # index at 0
选项2:
sheet['A1'] = price[0] # index when you put into Excel
值得注意的是,如果网站被更改并且价值不再位于IndexValue
,这可能会引入'//*[@id="main-frame"]/div/div[1]/table/tbody/tr[2]/td[2]/strong/text()'
错误,但否则应解决您的问题
您可以将错误视为异常。
try:
sheet['A1'] = price
except ValueError:
print("Handling the error case")