社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

3分钟Python爬取淘宝热卖榜,完成商品统计分析

蚂蚁学Python • 1 月前 • 87 次点击  

目标

爬取今日热榜网站的淘宝销售总榜,提取商品名称中的名词,做词语的数目统计,查看哪些是高频商品名词。

https://tophub.today/n/yjvQDpjobg

1. 导入相关的库

import requests
import pandas as pd
from bs4 import BeautifulSoup
import time

其中requests用于爬取网页、pandas用于数据分析、bs4用于解析网页。

2. 爬取数据

定义Headers

headers = {
    "User-Agent""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
}

爬取网页内容

url = "https://tophub.today/n/yjvQDpjobg"
response = requests.get(url, headers=headers)

解析到DataFrame

df = pd.read_html(response.text)[0]

输出df,会看到如下内容:

3. 实现中文分词

如果没有jieba这个库,需要先安装

pip install jieba

引入库

import jieba
import jieba.posseg as pseg

分词测试:

words = pseg.cut("我爱北京天安门")
list(words)

输出结果:

[pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]

如果要提取里面的名词,有个特点是,词性字符串中包含n这个字母。

比如,只提取名词:

noun_words = []
for word, pos in words:
    if "n" in pos:
        noun_words.append(word)
noun_words

输出结果为:

['北京''天安门']

4. 统计最高频的名词

先写一个函数,传入一个句子,可以得到中文名词

def get_noun_words(word_str):
    """执行分词,只获取名词,只保留字数大于1的单词"""
    words = pseg.cut(word_str)
    noun_words = []
    for word, pos in words:
        if "n" in pos and len(word) > 1:
            noun_words.append(word)
    return noun_words

然后,直接用于dataframe的商品名称列,实现分词

df["分词"] = df[2].map(get_noun_words)
df

这时候,对于“分词”这一列,可以统计词频了。

df_new = df.explode("分词")["分词"].value_counts().head(20)
df_new

从里面可以看到一些特点,例如儿童、婴儿、纯棉等名词,在热卖榜出现的很多。


如果想要跟蚂蚁老师学习Python技术,

这是蚂蚁老师的视频全集

https://study.163.com/series/1202914611.htm,

涵盖了8个学习路线,包含数据分析、WEB开发、机器学习、办公自动化等方向;

课程永久有效,新课全都免费看;

蚂蚁老师本人提供答疑、群聊答疑等服务;

课程重复回看,永久有效

提供副业兼职渠道;

课程可以单独买,也可以购买全套课程;

全套课原价1998元本月优惠价格998元

如果想要更多了解:

蚂蚁老师每晚21~23点直播,抖音账号:Python导师-蚂蚁

任何问题可以微信扫码咨询蚂蚁老师

点击下方“阅读原文”,可以直达课程主页

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/168430
 
87 次点击