集体智慧学习编程—— 学习笔记一

本文介绍了如何使用Python从新浪博客抓取数据,创建数据集,并运用皮尔逊相关度进行博客分类。通过分级聚类方法,构建博客的层次结构,并用树状图展示聚类结果。此外,还提到了PIL库用于绘制树状图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

1、利用博客资源自我创建数据集;

2、利用皮尔逊相关度描述单个数据之间的紧密度;

3、对从新浪博客爬取的博客进行分类;

4、绘制树状图。


一、利用博客资源创建数据集:

我这里选取的是新浪博客,例如http://roll.finance.sina.com.cn/blog/blogarticle/cj-bkks/inde_1.shtml, 其中url中数字1是页码。基于这个规律,可以抓取很多很多博客来充实数据集。

为了实现博客的抓取,这里我写了一个小爬虫,因为这不是学习的重点,这里就直接上代码了,我都写了注释的:

注意,我的运行环境是python2.7.

# -*- coding: utf-8 -*-
import urllib
from bs4 import BeautifulSoup
import codecs
import jieba
from collections import Counter

#获取当页所有博客的url,以list的方式返回
def get_all_urls(url):
    content = urllib.urlopen(url).read()
    soup = BeautifulSoup(content, 'lxml')   #利用beautifsoup进行html的解析
    url_list = list()
    for item in soup.find_all('ul', class_ = 'list_009'):
        for i in item.find_all('li'): url_list.append(i.a['href'])
    return url_list

#输入博客的url,返回博客内容
def get_content(url):
    text = urllib.urlopen(url).read()
    soup = BeautifulSoup(text, 'lxml')
    content = soup.find('div', class_ = 'articalContent').get_text()
    return content
    

words_list = list()   #标记词列表
dd = dict()
for i in range(1, 20):
    page = 'http://roll.finance.sina.com.cn/blog/blogarticle/cj-bkks/inde_' + str(i) + '.shtml'
    url_list = get_all_urls(page)
    for i in range(len(url_list)):
        url = url_list[i]
        content = get_content(url).strip()
        filename = str(i) + '.txt'
        file = codecs.open(filename, 'w', encodin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值