python大作业爬虫_爬虫大作业
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大作业爬虫_爬虫大作业相关推荐
- python查看数据大小_科多大数据带你看Python可以列为最值得学习的编程语言
原标题:科多大数据带你看Python可以列为最值得学习的编程语言 不知道从什么时候开始,这句话开始流行.不过也从侧面反映出 Python 语言的特点:简单.高效. 从近期代表技术趋势的业界报告以及编程 ...
- 成都python数据分析师职业技能_合格大数据分析师应该具备的技能
课程七.建模分析师之软技能 - 数据库技术 本部分课程主要介绍MySQL数据库的安装使用及常用数据操作 1.关系型数据库介绍 2.MySQL的基本操作: 1)数据库的操作 2)数据表的操作 3)备份与 ...
- python数据分析推荐课程_关于大数据分析的相关课程推荐
警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的.在上一篇文章<摩拜单车非官方大数据分析>中提到了我在春节期间对摩拜单车的数据分析,在后面的系列文章中我将进一步的阐述我的爬虫是如何 ...
- python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜
爬虫基本介绍 1. 什么是爬虫? 爬虫是请求⽹网站并提取数据的⾃自动化程序 2. 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers ...
- 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 ...
- nodejs爬虫与python爬虫_爬虫知多少-(NodeJS 爬虫)
不久前在公司做了一个关于爬虫的分享,简单介绍了网络爬虫的基础知识.爬虫的运作方式.抓取策略.攻防方式以及如何使用 NodeJS 进行爬虫开发, 在这里分享给各位同学分享一下~ 一.爬虫简介 二.爬虫的 ...
- 工业制造中的大数据分析应用_工业大数据分析方案-美林数据
认识工业大数据 什么是工业大数据? 我们先看看维基百科的说法:"工业大数据(Industrialbig data)是构成工业人工智能的重要元素,指由工业设备高速产生的大量数据,对应不同时间下 ...
- 观大数据有感_观大数据审计有感
观大数据审计有感 拥抱大数据审计 从我做起 在审计系统集中整训的第四天, 我们聆听学习了一部分先进单位 关于大数据审计应用的经验交流, 审计是专业性很强的工作, 并且紧 跟时代不断更新,闭门造车不可取 ...
- python大作业代码_爬虫大作业(示例代码)
1.选一个自己感兴趣的主题(所有人不能雷同). 每天都有接触各大平台推送的新闻,了解到了校园外的大小事.故此,对新浪新闻标题的关键字的爬取,看看最近发生的实时,也想比较下标题党还是和实际内容的差异. ...
- python爬虫大作业任务书_爬虫大作业
通过 爬取2345电影网的电影信息 ,通过电影的类型和评分分别生成相应的词云 进行数据分析 一.准备过程 首先打开2345电影网的热播电影区,网址是https://dianying.2345.com/ ...
最新文章
- 类和对象—对象特性—构造函数调用规则
- JavaScriptBreak 语句 continue 语句
- android 网易item广告,Android仿网易严选商品详情页
- JVM——CPU缓存架构与Java 内存模型
- sql server 常用语句
- vCenter HA (至少VCSA6.5及以上)
- 【数据库系统设计】SQL语言实验
- 如何修改WampServer服务器上传文件的大小?
- jQuery清空div内容
- 十、K8s 其他控制器(DS、RC、RS、STS)
- PLSQL常用方法汇总
- android wifi信号通道,Wifi信道分析app下载
- 用二维码分享WiFi密码(转)
- NC65与蓝凌OA审批集成
- 深度学习: marginal cost (边际成本)
- 2014年优秀动画片推荐:马来西亚动画片《Ribbit》
- 洗地扫地机一体机好用吗、洗扫一体洗地机选购必看
- CY3/Cy5/cy7/FITC/PEG/DBCO/BSA/PEI标记修饰纳米金球和纳米金棒的功能化修饰(Gold Nanoparticles)
- 用计算机发现计算规律,用计算器探索规律
- dll和exe的区别