数据挖掘案例实战1—百度新闻标题、网址、日期及来源

  • 获取网页源代码
  • 编写正则表达式提取新闻
    • 1.提取新闻的来源和日期
    • 2.提取新闻的网址和标题
  • 数据清洗并打印输出
    • 1.新闻标题的清洗
    • 2.新闻来源和日期的清洗
  • 总代码理解

获取网页源代码

import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
url = 'https://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&wd=阿里巴巴'
res = requests.get(url, headers=headers).text
print(res)

编写正则表达式提取新闻

特别注意:对于不同的网页,书写的规则是不一样的,我们要学会上节课的方法,找到规律然后提取相关的内容,下面只是框架示例

1.提取新闻的来源和日期

import re
p_info = '<p class="c-author">(.*?)</p>'
info = re.findall(p_info, res, re.S)
print(info)

2.提取新闻的网址和标题

p_title = '<h3 class="news-title_1YtI1">.*?>(.*?)</a>'
title = re.findall(p_title, res, re.S)

数据清洗并打印输出

1.新闻标题的清洗

通常情况下,每个标题的首位含有换行符\n,一些空格和< em >等无效字符。这里我们就可以利用strip()函数把不需要的空格、换行符去掉,利用sub()函数处理< em >等

for i in range(len(title)):  # range(len(title)),这里因为知道len(title) = 10,所以也可以写成for i in range(10)title[i] = title[i].strip()  # strip()函数用来取消字符串两端的换行或者空格,不过目前(2020-10)并没有换行或空格,所以其实不写这一行也没事title[i] = re.sub('<.*?>', '', title[i])

<.*?>可以表示任何形式为< xxx >的内容

2.新闻来源和日期的清洗

通常情况下夹杂< img >标签信息等,也是同理利用split()、strip()函数清洗,然后利用append()函数为列表添加新元素进行整合

总代码理解

import requests
import reheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}url = 'https://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&wd=阿里巴巴'  # 把链接中rtt参数换成4即是按时间排序,默认为1按焦点排序
res = requests.get(url, headers=headers).text  # 加上headers用来告诉网站这是通过一个浏览器进行的访问
# print(res)p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'
href = re.findall(p_href, res, re.S)
p_title = '<h3 class="news-title_1YtI1">.*?>(.*?)</a>'
title = re.findall(p_title, res, re.S)
p_date = '<span class="c-color-gray2 c-font-normal">(.*?)</span>'
date = re.findall(p_date, res)
p_source = '<span class="c-color-gray c-font-normal c-gap-right">(.*?)</span>'
source = re.findall(p_source, res)# print(title)
# print(href)
# print(date)
# print(source)for i in range(len(title)):  # range(len(title)),这里因为知道len(title) = 10,所以也可以写成for i in range(10)title[i] = title[i].strip()  # strip()函数用来取消字符串两端的换行或者空格,不过目前(2020-10)并没有换行或空格,所以其实不写这一行也没事title[i] = re.sub('<.*?>', '', title[i])  # 核心,用re.sub()函数来替换不重要的内容print(str(i + 1) + '.' + title[i] + '(' + source[i] + ' ' + date[i] + ')')print(href[i])

输出结果(这里是动态变化的,只是范例):

1.阿里巴巴季报发布 依然是互联网第一带头大哥吗?(新浪科技 7小时前)
https://baijiahao.baidu.com/s?id=1707322600078140878&wfr=spider&for=pc
2.重押的B系,能否驱动阿里的巨型“双轮”?(澎湃新闻 8小时前)
http://www.thepaper.cn/newsDetail_forward_13911023
3.阿里巴巴发布2021财年社会责任报告:办好企业,反哺社会!(人民资讯 6小时前)
https://baijiahao.baidu.com/s?id=1707323898986956642&wfr=spider&for=pc
4.阿里巴巴公布股权结构,创始人马云却没在名单上,他套现离开了?(腾讯网 8小时前)
http://new.qq.com/omn/ENT20190/20210806A05MVW00.html
5.阿里发布新一期社会责任报告,已连续15年(腾讯网 1小时前)
https://xw.qq.com/partner/vivoscreen/20210806A0DEHC/20210806A0DEHC00?isNews=1
6.阿里云进入发展新阶段(何玺 1小时前)
https://baijiahao.baidu.com/s?id=1707343662993442002&wfr=spider&for=pc
7.阿里巴巴发布2022财年Q1财报,透露出哪些信息?(网易 4小时前)
https://www.163.com/dy/article/GGNS45NL0545N7QO.html
8…比例为40.1175% 杭州阿里巴巴泽泰信息技术有限公司持股比例为32%(手机凤凰网 1小时前)
https://finance.ifeng.com/c/88UaZRIDFlP
9.发力产业互联网,阿里巴巴穿越“至暗”周期(媒体训练营 昨天19:22)
https://baijiahao.baidu.com/s?id=1707252161363610861&wfr=spider&for=pc
10.阿里巴巴关联公司成立新公司,注册资本100万元人民币(美股研究社 5小时前)
https://baijiahao.baidu.com/s?id=1707328596762733405&wfr=spider&for=pc

7 数据挖掘案例实战1—百度新闻标题、网址、日期及来源相关推荐

  1. python爬虫实战之百度新闻爬取

    百度新闻信息爬取 目录 百度新闻信息爬取 序言 获取在百度新闻中搜索"阿里巴巴"的网页源代码 编写正则表达式提取新闻信息 数据清洗并打印输出 实战完整代码 序言  通过对百度新闻标 ...

  2. 新闻网页制作源代码_Python爬虫百度新闻标题,并且做简单的数据分析!挺简单的

    需要下载的库 我所用的python版本为: Python 3.7.4 获取新闻信息需要的库: beautifulsoup4,request,re: 信息存储需要的库(获取信息存在csv文件中): cs ...

  3. Python爬虫百度新闻标题,并且做简单的数据分析!挺简单的

    需要下载的库 我所用的python版本为: Python 3.7.4 获取新闻信息需要的库: beautifulsoup4,request,re: 信息存储需要的库(获取信息存在csv文件中): cs ...

  4. python爬虫爬取新闻标题及链接_网络爬虫百度新闻标题及链接爬取

    1.主题:百度新闻爬取 2. python代码: import requests from bs4 import BeautifulSoup def getHTMLText(url): try: r ...

  5. 爬取百度新闻标题和链接

    使用python爬取新闻标题及链接,解析数据保存为excel文件. import re import requests from lxml import etree import pandas as ...

  6. Python爬虫百度新闻标题

    原文:https://blog.csdn.net/weixin_43881394/article/details/108200983 新学requests-html模块 import pandas a ...

  7. python-代码实战-爬取新闻标题

    近期开始学习python,目前以爬虫方向为主,打算在这个过程中通过代码的实践来记录学习过程,顺带当成笔记. 我的第一个完全由自己编写的爬虫代码产生啦! 主要是抓取新闻标题.时间等 本次写代码代码用到的 ...

  8. python爬虫爬取新闻标题_Python3爬虫实战(一):新闻标题及其URL

    本文以'链节点'网站为例,实现新闻标题及其URL批量获取,并以字典的形式存入本地. 代码使用python的requests模块,并以json格式转存本地. 分成3步:1,发请求:2,解析数据:3,保存 ...

  9. Python学习笔记(1)——提取百度新闻标题、网址、日期和来源

    代码练习: import requests #引用requests库 import reheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win ...

最新文章

  1. maven插件的使用
  2. 数据库基准测试:database bencnmark --生成大量随机测试数据
  3. 你的斗地主能拿多少炸?
  4. 10个小动作帮你简化生活
  5. 贷款利率最高多少合法?
  6. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
  7. java中bash应用_在bash脚本中查找java应用程序的进程ID(以查看目标应用程序是否已在运行)...
  8. python学习笔记9:面向对象编程,类
  9. Docker EE 2.0 版本震撼来袭,全新特性先睹为快(附资源地址)
  10. 游戏ai人工智能_AI与游戏,第1部分:游戏如何推动了两门AI研究流派
  11. 2021-10-25双塔模型
  12. vos3000下载java_VOS3000 安装
  13. 常用关系型数据库管理系统
  14. C++ MFC调用易语言模块
  15. MySQL读写分离原理
  16. /etc/profile文件详解
  17. 卖旧手机时恢复出厂设置就能不泄露数据?微信官方辟谣了!
  18. 录制PPT课件哪个录屏软件好?这3款值得收藏
  19. 绪论——信息理论学与量子信息学
  20. 希腊神话、罗马神话与中国神话人物大比拼

热门文章

  1. Excel拆分同一单元格的两行内容为两行(备忘记录)
  2. 转载出去:http://blog.csdn.net/han_xiaoyang/article/details/11969497
  3. 《一本书读懂24种互联网思维》用户思维1
  4. IDEA集成Docker插件实现项目打包镜像一键部署与Docker CA加密认证
  5. 与Facebook毗邻 苹果再建新数据中心
  6. Dell 灵越7559笔记本电脑加M.2固态硬盘
  7. USB-HOST调试纪实
  8. 心算测试c语言源代码,小学生心算统——c语言程序设计.doc
  9. easyui label 编辑_EasyUI datagrid 行编辑
  10. 使用ELF解析工具patch ELF