Python编程竞赛训练 - 微信公众号排行榜分析

这是一道爬虫+数据处理的问题,不难,但是很细节,我肝了好久才做出了,主要是因为对模块操作不是很熟悉。在这里插入图片描述
附件地址:http://72.itmc.org.cn/JS001/open/show/weixindata.html

# 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。
# 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。
# 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。
# 4. 提交代码次数越多,任务得分越低。
# 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。
# -*- coding: utf-8 -*-
import re

import requests
import bs4


class Solution:
    def weixinData(self, name: str) -> str:
        url = 'http://72.itmc.org.cn/JS001/open/show/weixindata.html'
        html_text = requests.get(url)
        html_text.encoding = 'utf-8'

        html_doc = bs4.BeautifulSoup(html_text.text, 'html.parser')
        tr_list = html_doc.find("tbody").find_all('tr')

        data = {}
        t_name,td3,td4,td7 = None,None,None,None
        for item in tr_list:
            td_list = item.find_all('td')
            cnt = 0
            for td in td_list:
                # 名称
                if cnt == 1:
                    t_name = td.find(class_='js-rank-detail-btn').text
                if cnt == 3:
                    td3 = str(td.text)
                    td3 = float(td3.replace('万',''))
                    # print(td3)
                if cnt == 4:
                    td4 = str(td.text)
                    if td4.find('万') > -1:
                        td4 = float(td4.replace('万+','')) *10000
                    td4 = int(td4)
                    # print(td4)
                if cnt == 7:
                    td7 = str(td.text)
                    if td7.find('万') > -1:
                        td7 = float(td7.replace('万+','')) *10000
                    td7 = int(td7)
                    # print(td7)
                cnt += 1
                # print(td, end='\n\n')
            data.setdefault(t_name,{
                'td3': td3,
                'td4': td4,
                'td7': td7
            })
        if data[name]['td3'] < 300 and data[name]['td4'] > 90000 and data[name]['td7'] > 80000:
            return 'YES'
        else:
            return 'NO'

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值