这种题目就是很简单的爬虫网页处理,不难就是繁琐,肝了一个多小时。2个小时的比赛时间,这真不够用啊。
# 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。
# 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。
# 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。
# 4. 提交代码次数越多,任务得分越低。
# 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。
# -*- coding: utf-8 -*-
import re
import bs4
from bs4 import BeautifulSoup
class Solution:
def itemSearch(self, shop_name: str) -> list:
url = 'http://72.itmc.org.cn:80/JS001/open/show/ecjd.html'
import requests
html_text = requests.get(url)
html_text.encoding = 'utf-8'
html_text = html_text.text
html_doc = BeautifulSoup(html_text,'html.parser')
# print(html_text)
# 取标题
name_list = html_doc.find_all(class_="hd-shopname")
name_text_list = []
for name in name_list:
name_text_list.append(name['title'])
# 取标价 会员价
biaojia_list = html_doc.find_all(class_="p-price")
biaojia_float_list = []
for biaojia in biaojia_list:
huiyuan = -1
if str(biaojia).find('PLUS会员专享价') != -1 :
huiyuan = str(biaojia.find(class_='price-plus-1').text).replace('¥','')
price = [float(biaojia.find('i').text),float(huiyuan)]
biaojia_float_list.append(price)
# 满减
manjian_list = html_doc.find_all(class_="p-icons")
manjian_bool_list = []
for manjian in manjian_list:
if str(manjian).find('本商品参与满减促销') == -1:
manjian_bool_list.append(False)
else:
manjian_bool_list.append(True)
# print(str(manjian).find('本商品参与满减促销'),end='nn')
# manjian_float_list.append(float(biaojia.find('i').text))
pinlun_list = html_doc.find_all(class_="p-commit")
pinlun_int_list = []
for pinlun in pinlun_list:
pl = str(pinlun.find('a').text)
pl = pl.replace('+','')
if pl.find('万') != -1:
pinlun_int_list.append( int(float(pl.replace('万','')) *10000) )
else:
pinlun_int_list.append(int(pl))
manjian_b,huiyuan_t,pinlun_t = False,-1,-1
for name_i in range(0,len(name_text_list)):
if name_text_list[name_i] == shop_name:
if huiyuan_t < max(biaojia_float_list[name_i]):
manjian_b = manjian_bool_list[name_i]
if min(biaojia_float_list[name_i]) > 0:
huiyuan_t = min(biaojia_float_list[name_i])
else:
huiyuan_t = max(biaojia_float_list[name_i])
pinlun_t = pinlun_int_list[name_i]
return [manjian_b,huiyuan_t,pinlun_t]



