一、提前说明:
(一)环境为python2.7(3.7会报not str错误):
(二)testurl.txt一开始写需要判断的网址:
(四)dabiao.txt本身是空的,是打完断点输出sendpay之后替换后边的值:
(因为该地址是前边地址的下一步操作哈哈,如果可以直接写代码替换其实很方便,但我暂时还没有时间写,哈哈哈哈):
(五)执行步骤:
1、在打断点执行完,输出sendPay后,
2、把该订单的sendPay值替换到dabiao.txt后边,
3、然后继续执行即可判断第几位打标成功,第几位打标失败。
4、(这样就是该订单号的该sendPay值的打标位数了。)
二、完整代码
#!/usr/bin/order
# -*- coding: UTF-8 -*-
from requests import packages
from lxml import etree
import requests
import xlwt
packages.urllib3.disable_warnings()
def getOrderDetail():
f = open("D:\\PycharmProjects\\OmTestDemo\\src\\main\\data\\testurl.txt", "r")
urlList = f.readlines()
# for url in urlList:
for index in range(len(urlList)):
url = urlList[index]
url = url.strip('\n')
headers = {
"Cookie":
"此处替换Cookie"
}
r = requests.get(url=url, headers=headers)
# r.encoding = r.apparent_encoding
rStr = r.content
# print rStr
#sendPay=后边有500为数值
rStr1 = rStr.find("sendPay=(查找元素)")
#+8是因为想取 sendPay= 的后边的位置
Len = rStr1 + 8
# print "sendPay位置:" + str(Len)
# 根据index取sendPay
sendPay = rStr[Len:Len + 500]
#此处打断点;然后把输出的sendPay放到dabiao.txt文件中!!!再接下去执行
print sendPay
str148_149 = rStr[Len + 148:Len + 149]
print "第148-149位:" + str148_149
str60_62 = rStr[Len + 59:Len + 62]
print "第60-62位:" + str60_62
str162 = rStr[Len + 161:Len + 162]
print "第162位:" + str162
# -------------------------
f1 = open("D:\\PycharmProjects\\OmTestDemo\\src\\main\\data\\dabiao.txt", "r")
urlList1 = f1.readlines()
url1 = urlList1[index]
# for url1 in urlList1:
r = requests.get(url=url1, headers=headers)
# r.encoding = r.apparent_encoding
rStr222 = r.content
# print "全部标记:" + rStr
if "01" in str148_149 and "X1订单" in rStr222:
print "匹配成功"
else:
print "X1订匹配失败"
if ("1" in str162 or "023" in str60_62) and "X2订单" in rStr222:
print "匹配成功"
else:
print "X2订匹配失败"
if "052" in str60_62 and "X3订单" in rStr222:
print "匹配成功"
else:
print "X3订匹配失败"
print "\n"
if __name__ == '__main__':
getOrderDetail()
执行结果如下:
三、注意点
(一)python3.7执行不了是因为==:参考博文地址
Python3和Python2的字符串兼容问题,因为数据文件是在Python2下序列化的,所以使用Python3读取时,需要将‘str’转化为’bytes’
————》所以我换了版本成2.7可以成功执行。