当前任务:商品搜索结果分析
任务详情提交记录
任务详情
根据任务详情下方提供的网页(数量为1),完成商品搜索结果分析。
请将右侧的函数 itemSearch() 补充完整,使其能完成以下功能:
对于网页中出现的任一网店名称 ,函数返回以下信息,请将以上获取的信息保存在数组中,按顺序返回。
任务要求
该网店对应商品,是否参与满减促销(非满件促销),返回值为 True 或 False;
该网店对应商品的价格,是否存在会员价,如果存在,则返回会员价,返回类型为 float(保留1位小数),如果不存在,返回原始价格;
该网店对应商品的评论数,返回类型为 int;
如果该网店存在两个及以上商品,返回价格较高的商品信息;如果商品价格相同,返回搜索结果最靠前的商品信息;
链接地址在下方专题地址中给出,点击链接可以直接获取。
测试用例
输入:"花花公子官方旗舰店" 输出:[False, 139.0, 4400]
解释:该网店价格最高的商品未参加满减促销活动,对应价格为139.0,商品评论数为4400
输入:"陌芙丝欧旗舰店" 输出:[True, 139.0, 12000]
解释:该网店价格最高的商品参加满减促销活动,对应价格为139.0,商品评论数为12000
输入:"合众服饰专营店" 输出:[True,118.0,10000]
解释:该网店价格最高的商品参加满减促销活动,对应价格为118.0,商品评论数为10000
说明
1. 会员价格是商品价格右边小字出现的价格信息;
2. 评论数为“1万+”就代表评论数为“10000”;
3. 函数接收“网店名称”这一变量,返回类型为数组;
4. 不得修改函数的名称;
5.“满减促销”和“满件促销”是不一样的概念;
6. 网页中存在相同店铺名称的商品,请注意甄别。
链接:http://72.itmc.org.cn:80/JS001/open/show/ecjd.html
import re
import requests
from bs4 import BeautifulSoup
class Solution:
def itemSearch(self, shop_name: str) -> list:
url = "###/open/show/ecjd.html"
response = requests.get(url)
if response.ok:
response.encoding = "utf-8"
return self.parseItem(response.text)[shop_name]
def parseItem(self, html):
soup = BeautifulSoup(html, 'html.parser')
# 父目录
temp_dict = dict()
for child in soup.findAll(class_="gl-item"):
# 商品名称
item_name = child.find(class_="J_im_icon").a.text
temp_list = []
temp = child.find(class_="p-icons").text
# print(child.find("i",{"data-tips":"本商品参与满减促销"}))
# 是否有满减活动
temp_list.append(re.search("满\d+-\d+", temp) != None)
# 是否有会员价
temp_list.append(float(child.find(class_="p-price").strong.i.text))
if child.find(class_="price-plus-1"):
temp_list.pop()
temp_list.append(
round(float(child.find(class_="price-plus-1").text[1:])))
# 该网店对应商品的评论数
if child.find(class_="p-commit"):
temp_commit = child.select_one(".p-commit strong a").text
temp_list.append(int(float(
temp_commit[:-2]) * 10000) if '万' in temp_commit else int(float(temp_commit[:-1])))
# 该商品的价格
# 如果该网店存在两个及以上商品,返回价格较高的商品信息;如果商品价格相同,返回排名最靠前的商品信息
if item_name in temp_dict.keys() and temp_dict[item_name][1] >= temp_list[1]:
continue
# 保存数据
temp_dict.update({item_name: temp_list})
return temp_dict
没有合适的资源?快使用搜索试试~ 我知道了~
python第一次竞赛例题.zip
共21个文件
txt:11个
text:10个
需积分: 0 1 下载量 128 浏览量
2023-11-01
17:38:43
上传
评论
收藏 25KB ZIP 举报
温馨提示
python第一次竞赛例题.zip
资源推荐
资源详情
资源评论
收起资源包目录
python第一次竞赛例题.zip (21个子文件)
python第一次竞赛例题
1.1.txt 2KB
2.5.txt 3KB
3.7.text 4KB
1.3.txt 880B
3.1.text 957B
1.5.txt 960B
1.2.txt 2KB
3.5.text 5KB
2.3.txt 3KB
2.2.txt 2KB
1.4.txt 3KB
3.6.text 2KB
2.1.txt 2KB
3.4.text 2KB
3.3.text 1KB
2.4.txt 2KB
3.9.text 6KB
2.7.text 1KB
2.6.txt 4KB
3.8.text 2KB
3.2.text 2KB
共 21 条
- 1
资源评论
m0_75218202
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功