基于Python的简单数据挖掘

最近闲着就用Python做了一个简单的数据挖掘,主要是挖掘一些公司的百度新闻数据还有筛选出来保存到TXT文档里面

爬取数据的话方式思路很简单,首先是获取整个网页源码当然不是在浏览器上而是通过代码的方式,python已经为我们封装好了,代码如下

#headers模拟浏览器打开网站,User-Agent的值可以通过在浏览器直接输入chrome://version/获取,其中的用户代理就是
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}
url = "https://www.baidu.com/s?rtt=4&bsst=1&cl=2&tn=news&word=阿里巴巴"#要爬取的数据网站rtt=1的话就是默认排序,爬取其他网站的话就自行修改网址和筛序规则就行
res = requests.get(url, headers=headers, timeout=20).text

这样就获取到源码了,接下来就是数据过滤和筛选代码如下

 p_href = '<h3 class="c-title">.*?<a href="(.*?)"' #标题链接的提取,每个网站不一定一样可以通过在网页上右键查看源码的方式获取然后通过正则表达式去筛选p_title = '<h3 class="c-title">.*?>(.*?)</a>' #标题提取,方式和链接一样p_info = '<p class="c-author">(.*?)</p>' #时间和来源提取href = re.findall(p_href, res, re.S)title = re.findall(p_title, res, re.S)info = re.findall(p_info, res, re.S)

这样就把标题,链接,还有新闻来源以及时间筛选出来了,当然如果各位想要其他数据的话就自行改变筛选规则就行
数据筛选出来后就是把数据保存到文件中代码如下

file1 = open('E:\\数据挖掘报告.txt', 'a') #以追加的方式打开文件,如果不存在就新建file1.write(company + '数据挖掘' + '\n' + '\n')for i in range(len(title)):file1.write(str(i + 1) + '.' + title[i] + '(' + date[i] + '-' + source[i] + ')' + '\n')file1.write(href[i] + '\n' + '\n')file1.write('----------------------------------------------------------------' + '\n' + '\n')file1.close()

这样运行完了后就完成了,不过只筛选了第一页的内容如果各位要其他页的内容的话就把url改成

url = "https://www.baidu.com/s?rtt=4&bsst=1&cl=2&tn=news&word=阿里巴巴&pn=10"

pn=10表示第二页,20表示第三页,30表示第四页
好了以下是全部源码

import requests
import re#headers模拟浏览器打开网站,User-Agent的值可以通过在浏览器直接输入chrome://version/获取,其中的用户代理就是
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}#从百度获取新闻资讯并且按时间排序
def baidu(company):url = "https://www.baidu.com/s?rtt=4&bsst=1&cl=2&tn=news&word="+company #要爬取的数据网站rtt=1的话就是默认排序,爬取其他网站的话就自行修改网址和筛序规则就行res = requests.get(url, headers=headers, timeout=20).textp_href = '<h3 class="c-title">.*?<a href="(.*?)"' #标题链接的提取,每个网站不一定一样可以通过在网页上右键查看源码的方式获取然后通过正则表达式去筛选p_title = '<h3 class="c-title">.*?>(.*?)</a>' #标题提取,方式和链接一样p_info = '<p class="c-author">(.*?)</p>' #时间和来源提取href = re.findall(p_href, res, re.S)title = re.findall(p_title, res, re.S)info = re.findall(p_info, res, re.S)source = [] #保存来源date = [] #保存时间for i in range(len(title)):title[i] = title[i].strip()title[i] = re.sub('<.*?>', '', title[i])info[i] = re.sub('<.*?>', '', info[i])source.append(info[i].split('&nbsp;&nbsp;')[0])date.append(info[i].split('&nbsp;&nbsp;')[1])source[i] = source[i].strip()date[i] = date[i].strip()file1 = open('E:\\数据挖掘报告.txt', 'a') #以追加的方式打开文件,如果不存在就新建file1.write(company + '数据挖掘' + '\n' + '\n')for i in range(len(title)):file1.write(str(i + 1) + '.' + title[i] + '(' + date[i] + '-' + source[i] + ')' + '\n')file1.write(href[i] + '\n' + '\n')file1.write('----------------------------------------------------------------' + '\n' + '\n')file1.close()companys = ['华能信托', '阿里巴巴', '万科集团', '百度集团', '腾讯', '京东']#爬取的公司名字,可增减
#可能会出现异常,所以进行一下异常处理
for i in companys:try:baidu(i)print(i + '百度新闻爬取成功')except:print(i + '百度新闻爬取失败')

过两天改一下爬取金融数据

金融数据的已经改好了,有兴趣的可以看这篇
基于Python的简单金融数据挖掘分析

基于Python的简单数据挖掘相关推荐

  1. python documents in chinese_基于 Python 的简单自然语言处理实践

    基于 Python 的简单自然语言处理 Twenty News Group 语料集处理 20 Newsgroup 数据集包含了约 20000 篇来自于不同的新闻组的文档,最早由 Ken Lang 搜集 ...

  2. python识别ppt文件格式 ——(专栏:基于python编写简单office阅卷程序③)

    ● 研二在读学生,非工科非计算机专业,故代码简陋初级勿喷,本文仅为记录和快乐分享. ○ 感谢肯定,感谢点赞收藏分享,转载请注明本页出处即可. ____Ⓙ即刻@王昭没有君 本文仅为笔者摸索总结-欢迎订正 ...

  3. 基于python的简单名片系统

    基于python的简单名片系统,适合python初学者,或者教学者试讲. card_list=[] #记录所有的名片字典def show_menu():print("*"*50)p ...

  4. python实现日历功能_基于python实现简单日历

    本文实例为大家分享了python实现简单日历的具体代码,供大家参考,具体内容如下 首先要理清楚逻辑,日历的难点在于如何使用基础知识将周几与对应的日期进行对应,我这里利用了1917年1月1日为星期1,计 ...

  5. python识别excel文件格式 ——(专栏:基于python编写简单office阅卷程序②)

    ● 研二在读学生,非工科非计算机专业,故代码简陋初级勿喷,本文仅为记录和快乐分享. ○ 感谢肯定,感谢点赞收藏分享,转载请注明本页出处即可. ____Ⓙ即刻@王昭没有君 本文仅为笔者摸索总结-欢迎订正 ...

  6. python识别word文件格式 ——(专栏:基于python编写简单office阅卷程序①)

    ● 研二在读学生,非工科非计算机专业,故代码简陋初级勿喷,本文仅为记录和快乐分享. ○ 感谢肯定,感谢点赞收藏分享,转载请注明本页出处即可. ____Ⓙ即刻@王昭没有君 本文仅为笔者摸索总结-欢迎订正 ...

  7. 一个基于 Python 的简单服务|Tips

    正文共: 1479字 3图 预计阅读时间: 3分钟 一.前言 在工作中,可能遇上各种情况需要使用一个临时的 Http Server.而如果你本机上,已经存在 Python 的环境了,这样的需求基本上一 ...

  8. 基于Python的简单验证码识别

    原文链接:有图有真相 摘要:验证码在网络安全方面发挥着关键作用,验证码的主要目的是区分人类和计算机,用来防止自动化脚本对网站的一些恶意行为.目前绝大多数网站都利用验证码来阻止恶意脚本程序的入侵.验证码 ...

  9. Python Train_机器学习--基于Python的简单线性回归

    一.概念 线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 这种函数是一个或多个称为回归系数的模型参数的线性 ...

  10. 基于 Python 爬虫+简单数据分析的课程设计(附PPT)

    按照课程设计要求,要用python做一个关于数据分析的小项目,在这里我们选的是爬取豆瓣图书TOP250,其中用到一些常用的数据处理及可视化方法,比如Echarts.Flask等! PPT部分截图: 报 ...

最新文章

  1. 一个线程罢工的诡异事件
  2. 五彩进化树与热图更配-ggtree美颜进化树(宏基因组扩增子)
  3. java blob压缩_如何从Oracle中用Java压缩的BLOB列中提取XML文档
  4. 牛客假日团队赛8:K.Cow Contest(最短路(floyd)变形)
  5. httpclient妙用一 httpclient作为客户端调用soap webservice(转)
  6. SAP UI5 XML view lifecycle processing - defineMasterHeaderFooter
  7. mysql查询系统年月_mysql每个月自动创建一张表,以年月做为表名,如何进行联合查询...
  8. hue是不是集成了oozie_在hue里面集成spark2,使用oozie的调度
  9. @程序员,Python 这次彻底上位了!
  10. c#异步文件传输功能
  11. cgroup学习(三)——伪文件
  12. Spark SQL面试题
  13. 简单的POST sql注入
  14. Linux介绍及基本操作
  15. 三个非负整数 马蹄集
  16. 打印机是共享的计算机显示脱机,win7系统连接网络共享打印机时出现脱机提示如何解决【图文】...
  17. python mysqldb 安装_python MySQLdb安装和使用
  18. 第二课堂计算机记录,第二课堂计算机小结
  19. 任正非创业期间得抑郁症:研发失败我就跳楼
  20. 2021年计算机视觉工程师学习路线

热门文章

  1. html货币相关符号
  2. 真实网络环境下使用易邮搭建网络邮件服务器并测试通过
  3. Unity 基础 之 Camera摄像机属性介绍
  4. AWS Toolkit for Eclipse环境配置
  5. wincc 服务器授权型号,WinCC V7.5 SP1软件安装及授权方法
  6. 网易云音乐评论加密解析
  7. MATLAB代码:全面ADMM算法代码,实现了三种ADMM迭代方式 参考文档:《基于串行和并行ADMM算法的电_气能量流分布式协同优化_瞿小斌》
  8. 学习《机器学习100天》第27天 什么是神经网络? | 深度学习,第1章
  9. Mac UE各版本破解方法
  10. Android如何在免Root下自动Pay(非人为非无障碍),引起的深思?