没空看新闻?教你获取实时新浪新闻
效果展示
安装所需的模块
requests模块:
- requests是python实现的简单易用的HTTP库,但因为是第三方库,所以使用前需要先安装(如果用的是Anaconda则不用安装),安装方法:
pip install requests
- 安装完成后,使用
import requests
导入该库测试一下,若没有报错则为安装成功
bs4模块:
- BS4全称是BeatifulSoup,它提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,但因为是第三方库,所以使用前需要先安装(如果用的是Anaconda则不用安装),安装方法:
pip install bs4
- 安装完成后,使用
import bs4
导入该库测试一下,若没有报错则为安装成功
获取最新新闻链接
- 进入新浪国际新闻页面 -> https://news.sina.com.cn/world/
进入页面后鼠标右击点检查
(或按快捷键F12
)打开开发人员工具,然后点击Network(网络)
,最后刷新一下页面,刷新后如图所示:
- 点击
world
文件 -> 点击Headers(标头)
,通过查看Request Method(请求方法)
发现该网页使用的是GET,复制该URL
- 利用
requests库
获取world文件的响应数据
import requests # 导入requests库
res = requests.get('https://news.sina.com.cn/world/') # 使用get请求方式
res.encoding = 'utf-8' # 把编码改为utf-8
print(res.text) # 以文本形式输出
获取新闻的标题、日期和链接:
- 在开发人员工具里,先点击左上角的
选择检查图标
,后点击页面上新闻的标题,在Elements(元素)
里会自动定位到当前标题所在的位置,如图所示:
- 通过上图可以看出,新闻的标题是在
news-item下的h2
内。 - 利用
bs4库
里的BeautifulSoup获取新闻的标题,代码如下:
import requests
from bs4 import BeautifulSoupres = requests.get('https://news.sina.com.cn/world/')
res.encoding = 'utf-8'
# 实例化soup对象
soup = BeautifulSoup(res.text, 'html.parser')
# 标题存放在news-item下,class对应'.' id对应'#'
for news in soup.select('.news-item'):# 如果h2标签里不为空if (len(news.select('h2')) > 0) and count <= num:title = news.select('h2')[0].texttime = news.select('.time')[0].textlinks = news.select('a')[0]['href']new_links_list.append(links)data = title + "| 发布日期:" + time + "| 文章链接:\n" + links + "\n"# 将获取新闻的链接保存到本地with open("new_links.txt", "a", encoding='utf-8') as w:w.write(data)
- 代码运行后部分效果如下:
获取新闻文章内容
获取文章的标题、日期、内容和作者:
- 先随便复制一篇新闻的链接,获取方法和上面的方法相同,具体步骤不再演示
import requests
from bs4 import BeautifulSoup
res = requests.get('https://news.sina.com.cn/w/2021-02-07/doc-ikftssap4647063.shtml')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
soup.select('.main-title')[0].text # 获取标题
- 获取日期和链接的方法和上面一样
soup.select('.date')[0].text #获取日期
' '.join([p.text.strip() for p in soup.select('#article p')[:-1]]) # 获取内容
soup.select('.show_author')[0].text.lstrip("责任编辑:") # 获取作者
完整代码
import json
import requests
from bs4 import BeautifulSoupdef getNewDetail():global new_links_listfor i in range(0, len(new_links_list)):result = {}res = requests.get(new_links_list[i])res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'html.parser')result['标题'] = soup.select('.main-title')[0].textresult['时间'] = soup.select('.date')[0].textresult['正文'] = ' '.join([p.text.strip() for p in soup.select('#article p')[:-1]])result['作者'] = soup.select('.show_author')[0].text.lstrip("责任编辑:")data = json.dumps(result, indent=1, ensure_ascii=False)with open("new_content.txt", "a", encoding='utf-8') as w:w.write(data)print("文件内容写入完成!")def run(num):global new_links_listcount = 1res = requests.get('https://news.sina.com.cn/world/')res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'html.parser')for news in soup.select('.news-item'):# 判断如果h2标签里不为空if (len(news.select('h2')) > 0) and count <= num:title = news.select('h2')[0].texttime = news.select('.time')[0].textlinks = news.select('a')[0]['href']new_links_list.append(links)data = title + "| 发布日期:" + time + "| 文章链接:\n" + links + "\n"with open("new_links.txt", "a", encoding='utf-8') as w:w.write(data)count += 1print("文件链接写入完成!")getNewDetail()if __name__ == '__main__':new_links_list = []num = int(input("请输入需要保存的新闻个数:"))run(num)
没空看新闻?教你获取实时新浪新闻相关推荐
- python爬取新浪新闻意义_爬取新浪新闻
[Python] 纯文本查看 复制代码import requests import os from bs4 import BeautifulSoup import re # 爬取具体每个新闻内容 de ...
- java 爬虫(爬新浪新闻) 如何从零开始 - 简书
本文由 简悦 SimpRead 转码, 原文地址 bbs.huaweicloud.com 这篇文章能够快速教你爬取新浪新闻.希望这篇文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ 如何 ...
- 新浪新闻简单抓取备忘录
一,抓取新浪新闻的简单方法 1.requests 2.pyquery解析 3.自定义日志类logger.py 代码中分别使用了python多进程multiprocessin ...
- PHP获取东方头条接口的新闻,新浪新闻API接口
头条 http://api.sina.cn/sinago/list.json?channel=news_toutiao 推荐 http://api.sina.cn/sinago/list.json?c ...
- 使用Pull解析XML获取新浪新闻
目标是获取新浪新闻如图所示位置的头条新闻数据: 思路是这样的,先访问这个首页拿到这个部分每一条新闻的url,然后再逐一访问这些详情页面,从详情页面获取标题正文图片等数据. 1.通过HttpUrlCon ...
- 【python】【爬虫】Scrapy Crawl自动爬虫【获取新浪新闻为例】
Scrapy自动爬虫(crawl模板)[scrapy genspider -t crawl news news.sina.com.cn] Crawl自动爬虫适用: 对有规律的网站进行自动爬取 Craw ...
- 新浪新闻改版了,是到了告别的时候了吗?
上午11点,想和同事讨论某页面改版,记得新浪新闻有类似内容的处理,就顺手打开给她看--大约8年多了,"新浪新闻"一直都放在我的收藏夹里,无论是IE.火狐.傲游,从未改变. 然而打开 ...
- php每天扒取当天新闻_php 抓取新浪新闻的程序代码
Jquery中文网 > 脚本编程 > php > 正文 php 抓取新浪新闻的程序代码 php 抓取新浪新闻的程序代码 发布时间:2016-10-09 编辑:www.jque ...
- 模拟新浪新闻在线聊天功能
前几天看到新浪新闻出现了一个新东西:看同一条新闻的人可以在页面上的一个聊天块中进行聊天. 聊天的程序功能不是什么新鲜事,不过新浪的这个看同一条新闻的人聊天的这个还蛮有意思. 关键的地方就是根据不同的新 ...
最新文章
- JSP笔记-点击量统计
- Fedora安装Samba与windows共享文件
- java gson使用_Java 中 Gson的使用
- css3 animatehue属性
- 刷牙刷了这么多年,我们居然都搞错了!
- 弥勒市召开智慧城市建设规划设计征求意见会
- mysql_close6_关于mysql_close()函数的10篇文章推荐
- 图像处理技术之分辨率与压缩
- 第九节: 利用RemoteScheduler实现Sheduler的远程控制
- 【HDU 5532 Almost Sorted Array】水题,模拟
- kubelet配置cni插件_不到1分钟,从零完成k3s Kubeconfig配置
- paip.自动import的实现跟java.lang.SecurityException Prohibited package name java
- win10解压软件哪个好(win10用哪个解压软件)
- 学python数据分析心得体会800字_一点学习大数据分析的心得体会
- 性能优化-图片压缩格式的选择(ETC和ASTC)
- MAF 项目创建流程
- QQ小程序开发者工具及官网
- Sparse Transformers
- 输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3。
- 【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?
热门文章
- golang 的 strings 包的 Trim 的用法介绍
- clean_code总结
- python爬虫ip代理没有作用_可能是一份没什么用的爬虫代理IP指南
- 期货反向跟单—我们与规律同在
- 淘宝/天猫API接口数据调用情况
- 如何写产品体验报告?给你一份全面的指南!
- 爬取最好大学网排名数据
- SAP系统邮件功能配置
- javaSE commons-io第三方插件, FilenameUtils工具类,getExtension(),getName(),isExtension()
- BIRT 中如何根据参数动态拼接 SQL