📜  Python | 抓取网页并获得最常用单词的程序(1)

📅  最后修改于: 2023-12-03 15:19:02.939000             🧑  作者: Mango

Python | 抓取网页并获得最常用单词的程序

这是一篇介绍使用 Python 爬虫获取网页数据并统计最常用单词的教程,使用的工具是 Python3 和 requests、BeautifulSoup、Counter 等第三方库。

程序实现思路
  1. 使用 requests 库获取网页源代码;
  2. 使用 BeautifulSoup 解析网页源代码,并提取需要的文本内容;
  3. 使用正则表达式或 split() 方法等将文本内容分词并去除无用字符,生成单词列表;
  4. 使用 Counter 对单词列表进行统计,得到最常用的单词;
  5. 将结果输出。
程序代码
import requests
from bs4 import BeautifulSoup
from collections import Counter

def get_text(url):
    """
    获取网页文本内容
    """
    res = requests.get(url)
    html = res.text
    soup = BeautifulSoup(html, 'html.parser')
    text = soup.get_text()
    return text

def clean_text(text):
    """
    文本分词并去除无用字符
    """
    words = text.lower().split()
    cleaned_words = []
    for word in words:
        symbols = '!@#$%^&*()_-+={[}]|\;:"<>/.,?~`'
        for i in range(len(symbols)):
            word = word.replace(symbols[i], '')
        if len(word) > 0:
            cleaned_words.append(word)
    return cleaned_words

def count_words(cleaned_words, num):
    """
    统计单词出现次数,并返回出现次数最多的 num 个单词
    """
    word_counts = Counter(cleaned_words)
    return word_counts.most_common(num)

if __name__ == '__main__':
    url = 'https://www.baidu.com'
    text = get_text(url)
    cleaned_words = clean_text(text)
    result = count_words(cleaned_words, 10)
    print(result)

代码说明:

  • 使用 requests 库发送 GET 请求获取网页源代码;
  • 使用 BeautifulSoup 解析网页源代码并提取所需文本,这里使用该网页全部文本;
  • 使用 clean_text 函数将文本转化为单词列表,并去除其中的无用字符(如标点符号等);
  • 使用 count_words 函数对单词列表进行统计,并返回出现次数最多的 num 个单词;
  • 在主程序中调用以上函数,设置输出最常用的前 10 个单词。