爬虫大作业之广商足球快讯(爬取足球新闻)
Posted hasbb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫大作业之广商足球快讯(爬取足球新闻)相关的知识,希望对你有一定的参考价值。
1.选一个自己感兴趣的主题(所有人不能雷同)。
主题:爬取足球新闻相关信息
2.用python 编写爬虫程序,从网络上爬取相关主题的数据。
3.对爬了的数据进行文本分析,生成词云。
txt
词云:
4.对文本分析结果进行解释说明。
def getNewsDetail(Url): resd = requests.get(Url) resd.encoding = \'utf-8\' soupd = BeautifulSoup(resd.text, \'html.parser\') #打开新闻详情并解析 news = {} news[\'广商好波\'] = soupd.select(\'.headline\')[0].text.rstrip().replace("\\r\\n"," ") # info = soupd.select(\'.artical-info\')[0].text.replace("\\r\\n"," ") # news[\'内容\'] = soupd.select(\'.artical-main-content\')[0].text.strip().replace("\\r\\n"," ") print(news) return (news);
文本内容通过对新闻网站的某个球队的新闻爬取,分别有标题、来源、内容等。标题作为词云的关键词。
5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
问题1:一开始的时候,代码没有包装方法,只是长篇的写,写着写着发现乱了。解决方法:重新梳理写了的代码,一步步的包装。
问题2:在txt文件的读取和录入的时候,发现使用utf乱码,后来通过请教其他同学,还是完成了。
f=open(\'pynews.txt\',\'r\',encoding=\'GBK\').read()
数据分析思想及结论:本次研究的数据,我认为欧洲的豪门球队可以争取中国的足球商业市场。通过数据的分析:大部分欧洲的顶级球队(新闻占据新闻主页的7成)受到中国球迷的青睐。假如这些球队来到中国踢友谊赛,或者与国足相互切磋,提升国足实力之余又能打开中国的球衣销售市场。
6.最后提交爬取的全部数据、爬虫及数据分析源代码。
from urllib import request import numpy as np import requests import re from PIL import Image from bs4 import BeautifulSoup from datetime import datetime from wordcloud import WordCloud, ImageColorGenerator import matplotlib.pyplot as plt def getNewsDetail(Url): resd = requests.get(Url) resd.encoding = \'utf-8\' soupd = BeautifulSoup(resd.text, \'html.parser\') #打开新闻详情并解析 news = {} news[\'广商好波\'] = soupd.select(\'.headline\')[0].text.rstrip().replace("\\r\\n"," ") # info = soupd.select(\'.artical-info\')[0].text.replace("\\r\\n"," ") # news[\'内容\'] = soupd.select(\'.artical-main-content\')[0].text.strip().replace("\\r\\n"," ") print(news) return (news); newslist = [] def getListPage(newsUrl): #9. 取出一个新闻列表页的全部新闻 包装成函数def getListPage(pageUrl) res = requests.get(newsUrl) res.encoding = \'utf-8\' soup = BeautifulSoup(res.text, \'html.parser\') for news in soup.select(\'.england-cat-grid-r2 ul li\'): Url = news.select(\'a\')[0].attrs[\'href\'] # filmslist.append(getFilmsDetail(Url)) print(Url) newslist.append(getNewsDetail(Url)) return (newslist) # print(res.text) newstotal = [] firstPageUrl=\'https://soccer.hupu.com/spain/\' newstotal.extend(getListPage(firstPageUrl)) f = open(\'pynews.txt\', \'w\', encoding=\'utf-8\') txtName = "pynews.txt" f = open(txtName, "a+") f.write(str(newstotal)) f.close() for news in newstotal: print(news) f=open(\'pynews.txt\',\'r\',encoding=\'GBK\').read() font=r\'C:\\Windows\\Fonts\\simkai.ttf\' a=np.array(Image.open("pdd.jpg")) wordcloud=WordCloud( background_color="white",font_path=font,width=1000,height=860,mask=a,margin=2).generate(f) imagecolor=ImageColorGenerator(a) plt.imshow(wordcloud) plt.axis("off") plt.show() wordcloud.to_file(\'1.jpg\')
以上是关于爬虫大作业之广商足球快讯(爬取足球新闻)的主要内容,如果未能解决你的问题,请参考以下文章