|
|
@@ -0,0 +1,101 @@ |
|
|
|
import requests |
|
|
|
import time |
|
|
|
import ddddocr |
|
|
|
#import redis |
|
|
|
def get_baiyun(): |
|
|
|
|
|
|
|
session = requests.Session() |
|
|
|
captcha_url = "http://183.63.156.34:808/vems/login!secode.action?T=1745722152384" |
|
|
|
|
|
|
|
response = session.get(captcha_url) |
|
|
|
with open('captcha.jpg', 'wb') as f: |
|
|
|
f.write(response.content) |
|
|
|
#img_bytes = f.read() |
|
|
|
|
|
|
|
with open('captcha.jpg', 'rb') as f1: |
|
|
|
img_bytes = f1.read() |
|
|
|
ocr = ddddocr.DdddOcr() |
|
|
|
captcha_code = ocr.classification(img_bytes) |
|
|
|
print('captcha>>>>>'+captcha_code) |
|
|
|
|
|
|
|
login_url = "http://183.63.156.34:808/vems/login!doLogin.action" |
|
|
|
payload = {'username':'FWB','password':'SC123456','secode':captcha_code} |
|
|
|
headers = { |
|
|
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', |
|
|
|
'Accept-Encoding': 'gzip, deflate', |
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.9', |
|
|
|
'Connection': 'keep-alive', |
|
|
|
'Content-Type':'application/x-www-form-urlencoded', |
|
|
|
'Host': '183.63.156.34:808', |
|
|
|
'Referer': 'http://183.63.156.34:808/vems/login.action', |
|
|
|
'Upgrade-Insecure-Requests': '1', |
|
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', |
|
|
|
} |
|
|
|
|
|
|
|
response = session.post(login_url, headers=headers, data=payload) |
|
|
|
text = response.text |
|
|
|
#print(text) |
|
|
|
|
|
|
|
local_date_str = time.strftime("%Y-%m-%d", time.localtime()) |
|
|
|
print('locadatestr>>>>'+local_date_str) |
|
|
|
business_url = "http://183.63.156.34:808/vems/parkoperation/present-car!list.action?filter_I_parkingLotSeq=4&filter_I_licenseOrRandomCode=1&filter_S_carLicenseNumber=&filter_S_enterTimePeriod="+local_date_str+"+00%3A00%3A00+-+"+local_date_str+"+23%3A59%3A59&filter_I_recordType=&filter_I_isCorrect=&filter_I_confidence=100&filter_I_parkingTime=&filter_S_enterChannel=&filter_S_enterVipTypeAndName=&filter_I_openModel=&filter_S_openOperator=&filter_I_parkingAreaSeq=&filter_I_uploadYDT=&filter_S_flag=1&pageParam.pageNum=1&pageParam.pageSize=10" |
|
|
|
|
|
|
|
business_payload = {} |
|
|
|
business_headers = { |
|
|
|
#'Cookie': 'JSESSIONID=F5467599E1B0A528F7444C69909DAAB0', |
|
|
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', |
|
|
|
'Accept-Encoding': 'gzip, deflate', |
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.9', |
|
|
|
'Connection': 'keep-alive', |
|
|
|
'Host': '183.63.156.34:808', |
|
|
|
'Referer': 'http://183.63.156.34:808/vems/parkoperation/present-car!list.action?menuID=', |
|
|
|
'Upgrade-Insecure-Requests': '1', |
|
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', |
|
|
|
} |
|
|
|
|
|
|
|
response = session.get(business_url, headers=business_headers, data=business_payload) |
|
|
|
text = response.text |
|
|
|
#print(text) |
|
|
|
key1= "<div class='table-pageNum col-sm-3'>" |
|
|
|
key1_len = len(key1) |
|
|
|
index1 = text.find(key1) |
|
|
|
key2 = '</div>' |
|
|
|
index2 = text[index1 + key1_len:].find(key2) |
|
|
|
cont = text[index1 + key1_len: index1 + key1_len + index2] |
|
|
|
print(cont) |
|
|
|
result = cont.split("总共")[1].replace("项","") |
|
|
|
print(result) |
|
|
|
with open('carCount.txt','w') as cf: |
|
|
|
cf.write(result) |
|
|
|
|
|
|
|
# pool = None |
|
|
|
# redisLink = None |
|
|
|
# try: |
|
|
|
# pool = redis.ConnectionPool(host='192.168.1.111', port=6379, decode_responses=True) |
|
|
|
# redisLink = redis.Redis(connection_pool=pool) |
|
|
|
# result = redisLink.set('key', '你好,欢迎来到Python3操作(Redis7.2.0)Redis应用') |
|
|
|
# print(result) # 打印结果:True 说明设置成功 |
|
|
|
# print("获取Key对应的值: ", redisLink.get('key')) |
|
|
|
# # ex: 设置过期时间(单位:秒) name为Key '老杨' 为value |
|
|
|
# #redisLink.set("name", "老杨", ex=3) |
|
|
|
# #time.sleep(1) |
|
|
|
# #resultValue = redisLink.get('name') |
|
|
|
# #print("请叫我:%s" % resultValue) |
|
|
|
# #time.sleep(3) |
|
|
|
# #print("3秒后请叫我无名小卒") |
|
|
|
# #print('name = %s' % (redisLink.get('name'))) |
|
|
|
# |
|
|
|
# except Exception as err: |
|
|
|
# print("redis连接异常: ", err) |
|
|
|
# finally: |
|
|
|
# print() |
|
|
|
# if redisLink is not None: |
|
|
|
# print("释放资源,连接还给连接池") |
|
|
|
# redisLink.close() |
|
|
|
|
|
|
|
|
|
|
|
# print(response.text) |
|
|
|
if __name__ == '__main__': |
|
|
|
while True: |
|
|
|
get_baiyun() |
|
|
|
time.sleep(60) |