经过几个小时的环顾四周和阅读文件后,我不得不寻求帮助和理智。我不是python专家,甚至不是HTML专家,所以我很感激能得到的每一点帮助。
如果需要,我可以付一点时间......
我要做的是:
两个网页。一个在我的服务器中,一个不在。不在我的服务器(order.asp)中的那个有这一行:
<FONT CLASS="fv">Estimated Weight of Order:</FONT></TD><TD ALIGN="RIGHT"><FONT CLASS="fv">XX.XXoz XX.XXg</FONT>
我需要一些我可以放入服务器的东西,从不在我服务器上的页面查询重量(order.asp页面),并将重量与我在页面上的运费相匹配(如一张桌子或者可能带有ifs。)
将有不同的订单页面(order1.asp order2.asp order3.asp)具有不同的权重。脚本或其他什么应该为ea做。 wpage。
这是我刚刚帮助理解的流程图:
http://www.gliffy.com/go/publish/image/5123674/L.png
一位非常有帮助的用户已经给了我这段代码:
html = open(“html.txt”)。read() out = open(“foundWeights.txt”,“w”)
#split html on order number
legoOrders = html.split("Order #")
for order in legoOrders[1:]:
print order
orderNumber = order.split("<")[0]
weightString = order.split('Estimated Weight of Order:</FONT></TD><TD ALIGN="RIGHT"><FONT CLASS="fv">')[1]
splitWeightString = weightString.split(' ')
splitStringFinal = splitWeightString[1].split("<")
grams = splitStringFinal[0]
ozs = weightString.split(' ')[0]
out.write(str(orderNumber) + "\t" + str(grams) + "\t" + str(ozs) + "\n"
取出订单号,以盎司和克为单位的重量。
我不知道该怎么做,有一个运费价格和重量范围的表格,将该重量与运费相匹配,拉动运费和......好吧,用它来做一些事情。
理想情况下,如果我知道如何做到这一点(我在python中什么都不知道,但我知道编程基础知识和C),我也可以提取订单总数,总计订单总额和运费价格,以及最终获得总计。
我希望我说清楚。
一切顺利, 杰拉德
这就是页面order.asp的样子(改变权重和订单总数):
缓慢到达那里。我将此添加到您的代码@duhaime
#get Shipping Range
test = "B"
if ( 0 < grams < 100 ):
test = "A"
if ( 100 < grams < 500):
test = "A"
与out.write中的str(test)一起。
然而,当我运行它时会打印出一张B,但它应该打印出来A.知道出了什么问题?
答案 0 :(得分:0)
再次感谢您的反馈,@ Brick Top。此代码从html中下拉订单号,总计,订单总额,运输成本,克重和Oz中的权重,并将它们写入以制表符分隔的文本文件,您可以在Excel中打开并轻松查看。
编辑:该脚本还根据订单的重量(以克为单位)计算出货类别。装运等级在出口档案的最后一栏中显示:
from decimal import *
html = open("html.txt").read()
out = open("legoShipping.txt", "w")
out.write("Order Number" + "\t" +
"Grand Total (currency)" + "\t" +
"Order Total (currency)" + "\t" +
"Shipping Cost (currency)" + "\t" +
"Order Weight (grams)" + "\t" +
"Order Weight (oz.)" + "\t" +
"Shipping Class" + "\n")
#split html on order number
legoOrders = html.split("Order #")
for order in legoOrders[1:]:
orderNumber = order.split("<")[0]
#get Grand Total
grand = order.split("<TD>Grand Total:</TD>")[1].split('<TD ALIGN="RIGHT"><B>')[1].split("<")[0].split(' ')
grandCurrency = grand[0]
grandTotal = grand[1]
#get Order Total
orderTotalAndCurrency = order.split('<TD>Order Total:</TD>')[1].split('<TD ALIGN="RIGHT">')[1].split("<")[0].split(' ')
orderCurrency = orderTotalAndCurrency[0]
orderTotal = orderTotalAndCurrency[1]
#get Shipping Cost
shipping = order.split("<TD>Shipping:</TD>")[1].split('<TD ALIGN="RIGHT">')[1].split("<")[0].split(' ')
shippingCurrency = shipping[0]
shippingCost = shipping[1]
#get Weights
weightString = order.split('Estimated Weight of Order:</FONT></TD><TD ALIGN="RIGHT"><FONT CLASS="fv">')[1]
splitWeightString = weightString.split(' ')
splitStringFinal = splitWeightString[1].split("<")
grams = splitStringFinal[0]
ozs = weightString.split(' ')[0]
#convert grams to mathematical value
gramsValue = Decimal(grams[:-1])
#create default shipping class value. Set it to ""
shippingClass = ""
if gramsValue > 0:
if gramsValue < 100:
shippingClass = "A"
if gramsValue >= 100:
if gramsValue < 200:
shippingClass = "B"
out.write(str(orderNumber) + "\t" +
str(grandTotal) + " (" + str(grandCurrency) + ")" + "\t" +
str(orderTotal) + " (" + str(orderCurrency) + ")" + "\t" +
str(shippingCost) + " (" + str(shippingCurrency) + ")" + "\t" +
str(grams) + "\t" +
str(ozs) + "\t" +
str(shippingClass) + "\n")
OpenOffice Calc中的输出: