1.选一个自己感兴趣的主题(所有人不能雷同)。

2.用python 编写爬虫程序,从网络上爬取相关主题的数据。

3.对爬了的数据进行文本分析,生成词云。

4.对文本分析结果进行解释说明。

5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。

6.最后提交爬取的全部数据、爬虫及数据分析源代码。

1、开发环境

编程语言:Python3.6

代码运行工具:pycham

依赖库:Requests,BeautifulSoup,wordcloud,re,jieba等

2、开发软件已经第三方库的安装

由于开发软件的安装流程网上都有比较详细的介绍,所以在这里只是给出参考网站,具体讲一下的是第三方库的安装

Python3.6的安装教程参照(https://jingyan.baidu.com/article/e9fb46e1502c5a7520f76640.html)

pycham的安装教程参照(https://jingyan.baidu.com/article/90895e0f28a32064ec6b0bc7.html)

在windows上安装python依赖库非常简单,语法如下:pip install PackageNamePackageName指的是你安装的依赖包名称。

例如安装requests依赖包可以这样安装:pip install requests

但是以上的安装依赖包的方法用于wordcloud依赖包的安装是不行的,软件会报错的。我上网找了一下解决的方法有两个比较可行的。

第一个是去https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud选择合适的版本下载whl文件,注意的是,cp指的是系统上安装的python版本,32或者64表示安装的python版本是32位或者64位的,而不是你电脑的操作系统多少位的

下载完成后打开cmd运行,切换到指定目录运行,代码如下:

pip install wordcloud-1.4.1-cp36-cp36m-win32.whl

pip install wordcloud

其中wordcloud-1.4.1-cp36-cp36m-win32.whl是你下载的whl文件的名字或者说是你下载的whl 的版本。

第二个是去网站下载一个vs2017可以解决这个问题,不过这个软件太大了有几个G,下载什么的太浪费时间,不过在第一种情况你还不能解决wordcloud不能安装的问题也可以使用第二种

参考网站https://jingyan.baidu.com/article/597a06433b992e312b524384.html

要注意的是你使用的依赖包一定要都下载了,不然使用不了,特别是生成词云是时候使用到的jieba依赖包

3、爬虫程序的编辑以及生成词云

爬取广州商学院校园网新闻

# coding: utf-8

import re

import requests

from bs4 import BeautifulSoup

from datetime import datetime

def getClickCount(r):

s = re.findall('\_(.*).html', r)[0].split('/')[-1]

res = requests.get('http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(s))

return int(res.text.split('.html')[-1].lstrip("('").rstrip("');"))

def getNewsDetail(newsUrl): # 一篇新闻的全部内容

resd = requests.get(newsUrl)

resd.encoding = 'utf-8'

soupd = BeautifulSoup(resd.text, 'html.parser') # 打开新闻详情并解析

news = {}

news['title'] = soupd.select('.show-title')[0].text

info = soupd.select('.show-info')[0].text

news['dt'] = datetime.strptime(info.lstrip('发布时间:')[0:19], '%Y-%m-%d %H:%M:%S')

if info.find('来源:') > 0:

news['source'] = info[info.find('来源:'):].split()[0].lstrip('来源:')

else:

news['source'] = 'none'

news['content'] = soupd.select('.show-content')[0].text.strip()

news['click'] = getClickCount(newsUrl)

news['newsUrl'] = newsUrl

return (news)

def getListPage(pageUrl): # 9. 取出一个新闻列表页的全部新闻 包装成函数def getListPage(pageUrl)

res = requests.get(pageUrl)

res.encoding = 'utf-8'

soup = BeautifulSoup(res.text, 'html.parser')

newslist = []

for news in soup.select('li'):

if len(news.select('.news-list-title')) > 0:

newsUrl = news.select('a')[0].attrs['href']

newslist.append(getNewsDetail(newsUrl))

return (newslist)

def getPageN():

res = requests.get('http://news.gzcc.cn/html/xiaoyuanxinwen/')

res.encoding = 'utf-8'

soup = BeautifulSoup(res.text, 'html.parser')

pagenumber = int(soup.select('.a1')[0].text.rstrip('条'))

page = pagenumber // 10 + 1

return page

newstotal = []

firstPageUrl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/'

newstotal.extend(getListPage(firstPageUrl))

n = getPageN()

# f = open('gzccnews.txt','a',encoding='utf-8')

for i in range(n, n + 1):

listPageUrl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i)

newstotal.extend(getListPage(listPageUrl))

for news in newstotal:

print(news)

import pandas

df = pandas.DataFrame(newstotal)

df.to_excel('gzccnews.xlsx')

# fo = open('output.txt', "ab+")

# # 以二进制写入章节题目 需要转换为utf-8编码,否则会出现乱码

# fo.write(('\r' + + '\r\n').encode('UTF-8'))

# # 以二进制写入章节内容

# fo.write(().encode('UTF-8'))

# fo.close()

选取想要生成词云图片(可以根据你自己的喜欢更换你的选择)

生成词云

#coding:utf-8

import matplotlib.pyplot as plt

from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS

import jieba

import numpy as np

from PIL import Image

#读入背景图片

abel_mask = np.array(Image.open("gui.jpg"))

#读取要生成词云的文件

text_from_file_with_apath = open('output.txt',encoding='utf-8').read()

#通过jieba分词进行分词并通过空格分隔

wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)

wl_space_split = " ".join(wordlist_after_jieba)

#my_wordcloud = WordCloud().generate(wl_space_split) 默认构造函数

my_wordcloud = WordCloud(

background_color='white', # 设置背景颜色

mask = abel_mask, # 设置背景图片

max_words = 800, # 设置最大现实的字数

stopwords = {}.fromkeys(['学院', '广州','法律','教师','新生','会议','主持','书记','学生']), # 设置停用词

font_path = 'C:/Users/Windows/fonts/simkai.ttf',# 设置字体格式,如不设置显示不了中文

max_font_size = 50, # 设置字体最大值

random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案

scale=.5

).generate(wl_space_split)

# 根据图片生成词云颜色

image_colors = ImageColorGenerator(abel_mask)

# 以下代码显示图片

plt.imshow(my_wordcloud)

plt.axis("off")

plt.show()

生成词云后的图片

python大作业爬虫_爬虫大作业相关推荐

  1. python查看数据大小_科多大数据带你看Python可以列为最值得学习的编程语言

    原标题:科多大数据带你看Python可以列为最值得学习的编程语言 不知道从什么时候开始,这句话开始流行.不过也从侧面反映出 Python 语言的特点:简单.高效. 从近期代表技术趋势的业界报告以及编程 ...

  2. 成都python数据分析师职业技能_合格大数据分析师应该具备的技能

    课程七.建模分析师之软技能 - 数据库技术 本部分课程主要介绍MySQL数据库的安装使用及常用数据操作 1.关系型数据库介绍 2.MySQL的基本操作: 1)数据库的操作 2)数据表的操作 3)备份与 ...

  3. python数据分析推荐课程_关于大数据分析的相关课程推荐

    警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的.在上一篇文章<摩拜单车非官方大数据分析>中提到了我在春节期间对摩拜单车的数据分析,在后面的系列文章中我将进一步的阐述我的爬虫是如何 ...

  4. python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜

    爬虫基本介绍 1. 什么是爬虫? 爬虫是请求⽹网站并提取数据的⾃自动化程序 2. 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers ...

  5. python数据处理电脑配置_『大数据python计算机基础教学视频教程』入门学python需要什么配置的电脑...

    x = 1 if x 4.2 1) else匹前的缩进相同且最接近的if 2) 改之前y=x 2行,之后是y=x 1先执行 第5题 代码还n = 1 while n <= 5: i = 1 wh ...

  6. nodejs爬虫与python爬虫_爬虫知多少-(NodeJS 爬虫)

    不久前在公司做了一个关于爬虫的分享,简单介绍了网络爬虫的基础知识.爬虫的运作方式.抓取策略.攻防方式以及如何使用 NodeJS 进行爬虫开发, 在这里分享给各位同学分享一下~ 一.爬虫简介 二.爬虫的 ...

  7. 工业制造中的大数据分析应用_工业大数据分析方案-美林数据

    认识工业大数据 什么是工业大数据? 我们先看看维基百科的说法:"工业大数据(Industrialbig data)是构成工业人工智能的重要元素,指由工业设备高速产生的大量数据,对应不同时间下 ...

  8. 观大数据有感_观大数据审计有感

    观大数据审计有感 拥抱大数据审计 从我做起 在审计系统集中整训的第四天, 我们聆听学习了一部分先进单位 关于大数据审计应用的经验交流, 审计是专业性很强的工作, 并且紧 跟时代不断更新,闭门造车不可取 ...

  9. python大作业代码_爬虫大作业(示例代码)

    1.选一个自己感兴趣的主题(所有人不能雷同). 每天都有接触各大平台推送的新闻,了解到了校园外的大小事.故此,对新浪新闻标题的关键字的爬取,看看最近发生的实时,也想比较下标题党还是和实际内容的差异. ...

  10. python爬虫大作业任务书_爬虫大作业

    通过 爬取2345电影网的电影信息 ,通过电影的类型和评分分别生成相应的词云 进行数据分析 一.准备过程 首先打开2345电影网的热播电影区,网址是https://dianying.2345.com/ ...

最新文章

  1. 类和对象—对象特性—构造函数调用规则
  2. JavaScriptBreak 语句 continue 语句
  3. android 网易item广告,Android仿网易严选商品详情页
  4. JVM——CPU缓存架构与Java 内存模型
  5. sql server 常用语句
  6. vCenter HA (至少VCSA6.5及以上)
  7. 【数据库系统设计】SQL语言实验
  8. 如何修改WampServer服务器上传文件的大小?
  9. jQuery清空div内容
  10. 十、K8s 其他控制器(DS、RC、RS、STS)
  11. PLSQL常用方法汇总
  12. android wifi信号通道,Wifi信道分析app下载
  13. 用二维码分享WiFi密码(转)
  14. NC65与蓝凌OA审批集成
  15. 深度学习: marginal cost (边际成本)
  16. 2014年优秀动画片推荐:马来西亚动画片《Ribbit》
  17. 洗地扫地机一体机好用吗、洗扫一体洗地机选购必看
  18. CY3/Cy5/cy7/FITC/PEG/DBCO/BSA/PEI标记修饰纳米金球和纳米金棒的功能化修饰(Gold Nanoparticles)
  19. 用计算机发现计算规律,用计算器探索规律
  20. dll和exe的区别

热门文章

  1. Linux系统启动流程(4)制作自定义linux之一
  2. 换行符javajava去除字符串中的空格、回车、换行符、制表符
  3. Windows7下VS2008试用版到期的解决办法
  4. 从数据仓库到报表,再到可视化,数字化物流是这么设计架构的
  5. 工作3年,可视化毫无进步?小白都能看懂的干货,我真不想告诉你
  6. 飞秋_飞秋2010_飞秋2010下载_飞秋下载2010正式版
  7. web前端 如何入门人工智能算法
  8. 是的,我不做技术经理了
  9. 一入web前端深似海
  10. 程序员职业自由6个阶段,你处于哪个?