码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫大作业之广商足球快讯(爬取足球新闻)

时间:2018-04-28 10:50:53      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:text   rate   完整   pre   read   back   过程   stp   etl   

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‘)

  

爬虫大作业之广商足球快讯(爬取足球新闻)

标签:text   rate   完整   pre   read   back   过程   stp   etl   

原文地址:https://www.cnblogs.com/hasb/p/8965621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!