博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬虫大作业
阅读量:6188 次
发布时间:2019-06-21

本文共 2749 字,大约阅读时间需要 9 分钟。

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

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

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

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

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

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

# -*- coding: UTF-8 -*-# -*- import requests import re import jieba import locale locale=locale.setlocale(locale.LC_CTYPE, 'chinese') from bs4 import BeautifulSoup from datetime import datetime url = "http://ent.chinadaily.com.cn/" res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser') def getKeyWords(text):     str = '''一!“”,。?、;’"',.、·《》()#\t:\n'''     for s in str:         text = text.replace(s, '')     newsList=list(jieba.lcut(text))     newsDict = {}     deleteList = []     for i in newsDict.keys():         if len(i) < 2:             deleteList.append(i)  # 生成单字无意义字符列表     for i in deleteList:         del newsDict[i]  # 在词云字典中删除无意义字符     newsSet = set(newsList) - set(deleteList)     for i in newsSet:         newsDict[i] = newsList.count(i)  # 生成词云字典     dictList = list(newsDict.items())     dictList.sort(key=lambda x: x[1], reverse=True) def getNewDetail(newsUrl):     resd = requests.get(newsUrl)     resd.encoding = 'utf-8'     soupd = BeautifulSoup(resd.text, 'html.parser')     title = soupd.select('h1')[0].text     info = soupd.select('.xinf-le')[0].text     t = soupd.select('#pubtime')[0].text     dt = datetime.strptime(t, ' %Y-%m-%d %H:%M:%S')     # source = soupd.select('#source')[0].text.lstrip('    来源:')     biaoqian = soupd.select('.fenx-bq')[0].text.lstrip('标签:')     if info.find('作者:') > 0:         au = info[info.find('作者:'):].split()[0].lstrip('作者:')     else:         au = 'none'     if info.find('来源:') > 0:         source = info[info.find('来源:'):].split()[0].lstrip('来源:')     else:         source = 'none'     content = soupd.select('#Content')[0].text.strip()     print("标题:", title)     print("作者:",au)     print("来源:",source)     print("发布时间:", dt)     print("正文:",content)     print("标签:", biaoqian)     getKeyWords(content)     fo = open('D:\python/news.txt', 'a+', encoding='UTF-8')     fo.write('标题:'+title+'\n'+"作者:"+au+'\n'+"来源:"+source+'\n'+"正文:"+content+'\n'+"标签:"+biaoqian)     fo.write('\n')     fo.close() def getListPage(ListPageUrl):     res = requests.get(ListPageUrl)     res.encoding = 'utf-8'     soupd = BeautifulSoup(res.text, 'html.parser')     pagedetail = []  # 存储一页所有新闻的详情     for news in soupd.select('.busBox1'):         atail = news.a.attrs['href']         # a = 'http://ent.chinadaily.com.cn/' + atail         getNewDetail(atail) pagedetail = getListPage('http://ent.chinadaily.com.cn/node_53008149.htm') for i in range(2, 10):     listUrl='http://ent.chinadaily.com.cn/node_53008149_{}.htm'     pagedetail = getListPage(listUrl)

 

转载于:https://www.cnblogs.com/FZW1874402927/p/8973276.html

你可能感兴趣的文章
Java日志系统学习之log4j!
查看>>
Git常用命令查询
查看>>
Oracle数据库之SQL单行函数---字符函数之TRIM
查看>>
std::remove_if
查看>>
我的友情链接
查看>>
enq: HW - contention等待事件
查看>>
Vue安装 devTool 时报错的解决办法
查看>>
Win8 内置游戏应用更新 中文翻译错误得以修正
查看>>
基于HTTP协议的轻量级开源简单消息队列服务:HTTPSQS
查看>>
log4j打印mybatis sql语句
查看>>
在Ubuntu-16.04安装Chrome、搜狗拼音输入法、网易云音乐
查看>>
winxp---执行任务计划
查看>>
vim 的使用
查看>>
虚拟机的克隆
查看>>
python创建字典的两种方法
查看>>
SpringMVC总结
查看>>
以写代学:python 元组
查看>>
win7 配置jdk
查看>>
Linux文件查找及压缩工具
查看>>
消息队列
查看>>