爬虫大作业

author author     2022-11-06     529

关键词:

 

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

我选择了我们学校的新闻网来爬取数据,主要是通过获取文本然后结巴来分析

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

def getNewDetail(newUrl):
    resd=requests.get(newUrl)
    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"
    content=soupd.select(".show-content")[0].text
    news[\'content\']=soupd.select(".show-content")[0].text.split()
    f=open(\'gzccnews.txt\',\'a\',encoding="utf-8")
    f.write(content)
    f.close()

    news[\'click\']=int(getClickCount(newUrl))
    news[\'newUrl\'] = newUrl
    countdict[news[\'source\']]=news[\'click\']
    return news

  打开广州商学院的网址进入到校园的新闻网。然后通过对每一页的来获取信息。

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

首先通过结巴把信息存在一个TXT文件下。

 

 4.生成词云:

#coding:utf-8
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
from wordcloud import WordCloud

import jieba
import numpy as np
from PIL import Image

#读入背景图片
abel_mask = np.array(Image.open("filepath"))

#读取要生成词云的文件
text_from_file_with_apath = open(\'filepath\').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 = 200,            # 设置最大现实的字数
            stopwords = STOPWORDS,        # 设置停用词
            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)
#my_wordcloud.recolor(color_func=image_colors)

# 以下代码显示图片
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

  生成的词云:

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

  答:文本获取到的字符信息并不是我们想要的效果,因此,为了达到我们想要的效果,我就将所获取到的文本信息,生成一个词云图,这样我们就可以比较直观地看出,广州商学院的新闻网地信息主要在强调些什么,从而达到此次爬取的目的。

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

  答:对于这个大作业,遇到以下问题:

    第一,在爬取过程中,遇到的最大的问题就是在那个获取页面的总页数上,通过以前老师课堂上教过的知识,顺利解决了。

    第二,第二个问题就是在安装生成词云的时导入有错误

  

     后来选择合适的版本即:cp-36-cp-36m-win32.whl版本的来下载,cp指的是系统上安装的python版本,32表示安装的python版本是32位,不是操作系统

             打开cmd运行,切换到指定目录运行

     执行以下命令

1
2
pip install wordcloud-1.3.3-cp36-cp36m-win32.whl
pip install wordcloud

    最后就安装成功了。

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

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import codecs
import numpy as np
from PIL import Image
import re

file = codecs.open(\'gzccnews.txt\', \'r\', \'utf-8\')
image = np.array(Image.open(\'./a.jpg\'))
font = r\'C:\\Windows\\Fonts\\simkai.ttf\'
word = file.read()
# 去掉英文,保留中文
resultword = re.sub("[A-Za-z0-9\\[\\`\\~\\!\\@\\#\\$\\^\\&\\*\\(\\)\\=\\|\\\\\\\'\\:\\;\\\'\\,\\[\\]\\.\\<\\>\\/\\?\\~\\!\\@\\#\\\\\\&\\*\\%]", "", word)
wordlist_after_jieba = jieba.cut(resultword, cut_all=True)

wl_space_split = " ".join(wordlist_after_jieba)
print(wl_space_split)
my_wordcloud = WordCloud(font_path=font, mask=image, background_color=\'black\', max_words=100, max_font_size=300,
                         random_state=50).generate(wl_space_split)
# 根据图片生成词云
iamge_colors = ImageColorGenerator(image)
my_wordcloud.recolor(color_func=iamge_colors)
# 显示生成的词云
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

  总结:熟能生巧,以后还是得多练习呀

 

爬虫大作业(代码片段)

importrequestsfrombs4importBeautifulSoupimportjsonimportjieba.analysefromPILimportImageimportnumpyasnpimportmatplotlib.pyplotaspltfromwordcloudimportWordCloud,ImageColorGeneratorurl="https://item.btim 查看详情

爬虫大作业(代码片段)

 importjieba.analysefromPILimportImage,ImageSequenceimportnumpyasnpimportmatplotlib.pyplotaspltfromwordcloudimportWordCloud,ImageColorGeneratorimportrequestsfromurllibimportparsefrombs4importBeau 查看详情

爬虫大作业(代码片段)

importrequestsimportrefrombs4importBeautifulSoupimportjieba.analysefromPILimportImage,ImageSequenceimportnumpyasnpimportmatplotlib.pyplotaspltfromwordcloudimportWordCloud,ImageColorGenerator#获取总页数defg 查看详情

爬虫大作业

f=open("C:/Users/ZD/PycharmProjects/test/test.txt",‘w+‘,encoding=‘utf8‘)importjiebaimportrequestsfrombs4importBeautifulSoupdefsonglist(url):res=requests.get(url)res.encoding=‘UTF-8‘soup=BeautifulSoup( 查看详情

爬虫大作业(代码片段)

1.主题爬取小说网站的《全职高手》小说第一章 2.代码 导入包importrandomimportrequestsimportreimportmatplotlib.pyplotaspltfromwordcloudimportWordCloud,ImageColorGenerator,STOPWORDSimportjiebaimportnumpyasnpfromPILimport 查看详情

爬虫大作业(代码片段)

#-*-coding:utf-8-*-#第三方库importscrapyfromscrapy.spidersimportSpiderfromlxmlimportetreeimportreimportjiebafromBoKeYuan.itemsimportBokeyuanItemclassBlogYuanSpider(Spider):name=‘blog_yuan‘start_urls=[‘htt 查看详情

爬虫大作业

...就找了没人做的,找了一个小说网站。 2.用python编写爬虫程序,从网络上爬取相关主题的数据。导入相关类importrequestsfrombs4importBeautifulSoupimportjieba获取详细页面的标题和介绍  defgetNewDetail(novelUrl):#获取详细页面方法 查看详情

爬虫大作业(代码片段)

1.爬取豆瓣电影top250。(所有同学不能雷同)2.用python编写爬虫程序,从网络上爬取相关主题的数据。importrequestsfrombs4importBeautifulSoupfromdatetimeimportdatetimeimportreimportpandas#电影简介保存到txt。defwriteNewsDetail(content):f=open(‘wzh.txt‘,‘a 查看详情

爬虫大作业(代码片段)

词云生成importjiebaimportPILfromwordcloudimportWordCloudimportmatplotlib.pyplotaspimportosinfo=open(‘wmh.txt‘,‘r‘,encoding=‘utf-8‘).read()text=‘‘text+=‘‘.join(jieba.lcut(info))wc=WordCloud(font_path=‘./fo 查看详情

爬虫大作业(代码片段)

importrequests,re,jiebafrombs4importBeautifulSoupfromdatetimeimportdatetime#获取新闻细节defgetNewsDetail(newsUrl):resd=requests.get(newsUrl)resd.encoding=‘gb2312‘soupd=BeautifulSoup(resd.text,‘html.parser‘) 查看详情

爬虫大作业(虎扑足球新闻)

importrequestsfrombs4importBeautifulSoupimportjiebafromPILimportImage,ImageSequenceimportnumpyasnpimportmatplotlib.pyplotaspltfromwordcloudimportWordCloud,ImageColorGeneratordefchangeTitleToDict():f=o 查看详情

爬虫大作业(代码片段)

用python编写爬虫程序,从网络上爬取相关主题的数据importrequestsfrombs4importBeautifulSoupasbsdefgetreq(url):header=‘user-agent‘:‘Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/59.0.3071.115Safar 查看详情

爬虫大作业

...数据,主要是通过获取文本然后结巴来分析2.用python编写爬虫程序,从网络上爬取相关主题的数据。defgetNewDetail(newUrl):resd=requests.get(newUrl)resd.encoding="utf-8"soupd=BeautifulSoup(resd.text,"html.p 查看详情

爬虫大作业(代码片段)

代码:#encoding=utf-8importreimportrequestsimporturllib2importdatetimeimportMySQLdbfrombs4importBeautifulSoupimportsysreload(sys)sys.setdefaultencoding("utf-8")classSplider(object):def__init__(self):prin 查看详情

爬虫大作业(代码片段)

对豆瓣读书网进行书评书单推荐简介和推荐链接数据爬取:  frombs4importBeautifulSoupimportrequestsimportjiebaimporttimeimportdatetimer=requests.get(‘https://book.douban.com‘)lyrics=‘‘html=r.textsoup=BeautifulSoup(html,‘html.parser 查看详情

python大作业——爬虫+可视化+数据分析+数据库(可视化篇)(代码片段)

相关链接Python大作业——爬虫+可视化+数据分析+数据库(简介篇)Python大作业——爬虫+可视化+数据分析+数据库(爬虫篇)Python大作业——爬虫+可视化+数据分析+数据库(数据分析... 查看详情

爬虫大作业

我选择的是爬取慕课网的关于java的课程,网址为https://www.imooc.com/search/course?words=java; 慕课网上关于java的课程总共有三页:foriinrange(1,4):pageUrl="https://www.imooc.com/search/course?words=java&page=".format(i)gettitle( 查看详情

爬虫大作业(代码片段)

...能雷同)我选了附近松田学校的校园网来爬取2.用python编写爬虫程序,从网络上爬取相关主题的数据。#-*-coding:utf-8-*-importrequestsfrombs4importBeautifulSoupasbsdefgettext(url):header=‘user-agent‘:‘Mozilla/5.0(WindowsNT10.0; 查看详情