代码改变世界

爬虫大作业

2018-05-03 18:23  124杨锦达  阅读(206)  评论(0编辑  收藏  举报

1.选一个自己感兴趣的主题或网站。

我选了网易新闻来爬取

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

复制代码
import requests
from bs4 import BeautifulSoup
import re


url = "http://news.163.com/"
header={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}
res = requests.get(url, headers=header)
html = res.content.decode('gbk')
soup = BeautifulSoup(html, "html.parser")
text = soup.select('a[target="_blank"]')
for i in text:
f = open('yjd.txt', 'a+', encoding='utf-8')
f.write(re.sub('\s+','',i.get_text()))
f.close()
复制代码

 

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

复制代码
# -*- coding:utf-8 -*-
from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
import jieba.analyse
lyric= ''
f=open('yjd.txt','r', encoding='utf-8').read()
result = ''
result += ' '.join(jieba.lcut(f))
image= Image.open('1.png')
graph = np.array(image)
wc = WordCloud(font_path='C:\Windows\Fonts\STZHONGS.TTF',background_color='White',max_words=50,mask=graph)
print(result)
wc.generate_from_text(result)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()
wc.to_file('xiaodada.jpg')
复制代码

 

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

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

一开始遇到的问题很多,做函数的时候发现自己的基本功非常的不扎实,甚至在导入库方面的知识也很匮乏,好在在同学的帮助下,我还是顺利的完成了任务。感觉做大数据爬取还是很有意思的,不过在爬其他网站的时候经常爬不到东西,应该是被限制了访问,这个问题以后再去深究吧。

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