栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python编程竞赛训练 - 商品搜索结果分析

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python编程竞赛训练 - 商品搜索结果分析

这种题目就是很简单的爬虫网页处理,不难就是繁琐,肝了一个多小时。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]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号