效果展示

安装所需的模块

requests模块:

  • requests是python实现的简单易用的HTTP库,但因为是第三方库,所以使用前需要先安装(如果用的是Anaconda则不用安装),安装方法:

pip install requests

  • 安装完成后,使用import requests导入该库测试一下,若没有报错则为安装成功

bs4模块:

  • BS4全称是BeatifulSoup,它提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,但因为是第三方库,所以使用前需要先安装(如果用的是Anaconda则不用安装),安装方法:

pip install bs4

  • 安装完成后,使用import bs4导入该库测试一下,若没有报错则为安装成功

获取最新新闻链接

  1. 进入新浪国际新闻页面 -> https://news.sina.com.cn/world/
    进入页面后鼠标右击点检查(或按快捷键F12)打开开发人员工具,然后点击Network(网络),最后刷新一下页面,刷新后如图所示:
  2. 点击world文件 -> 点击Headers(标头),通过查看Request Method(请求方法)发现该网页使用的是GET,复制该URL
  3. 利用requests库获取world文件的响应数据
import requests # 导入requests库
res = requests.get('https://news.sina.com.cn/world/')  # 使用get请求方式
res.encoding = 'utf-8'  # 把编码改为utf-8
print(res.text)  # 以文本形式输出

获取新闻的标题、日期和链接:

  1. 在开发人员工具里,先点击左上角的选择检查图标,后点击页面上新闻的标题,在Elements(元素)里会自动定位到当前标题所在的位置,如图所示:
  2. 通过上图可以看出,新闻的标题是在news-item下的h2内。
  3. 利用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)
  1. 代码运行后部分效果如下:

获取新闻文章内容

获取文章的标题、日期、内容和作者:

  1. 先随便复制一篇新闻的链接,获取方法和上面的方法相同,具体步骤不再演示
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  # 获取标题
  1. 获取日期和链接的方法和上面一样
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)

没空看新闻?教你获取实时新浪新闻相关推荐

  1. python爬取新浪新闻意义_爬取新浪新闻

    [Python] 纯文本查看 复制代码import requests import os from bs4 import BeautifulSoup import re # 爬取具体每个新闻内容 de ...

  2. java 爬虫(爬新浪新闻) 如何从零开始 - 简书

    本文由 简悦 SimpRead 转码, 原文地址 bbs.huaweicloud.com 这篇文章能够快速教你爬取新浪新闻.希望这篇文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ 如何 ...

  3. 新浪新闻简单抓取备忘录

    一,抓取新浪新闻的简单方法 1.requests        2.pyquery解析        3.自定义日志类logger.py 代码中分别使用了python多进程multiprocessin ...

  4. PHP获取东方头条接口的新闻,新浪新闻API接口

    头条 http://api.sina.cn/sinago/list.json?channel=news_toutiao 推荐 http://api.sina.cn/sinago/list.json?c ...

  5. 使用Pull解析XML获取新浪新闻

    目标是获取新浪新闻如图所示位置的头条新闻数据: 思路是这样的,先访问这个首页拿到这个部分每一条新闻的url,然后再逐一访问这些详情页面,从详情页面获取标题正文图片等数据. 1.通过HttpUrlCon ...

  6. 【python】【爬虫】Scrapy Crawl自动爬虫【获取新浪新闻为例】

    Scrapy自动爬虫(crawl模板)[scrapy genspider -t crawl news news.sina.com.cn] Crawl自动爬虫适用: 对有规律的网站进行自动爬取 Craw ...

  7. 新浪新闻改版了,是到了告别的时候了吗?

    上午11点,想和同事讨论某页面改版,记得新浪新闻有类似内容的处理,就顺手打开给她看--大约8年多了,"新浪新闻"一直都放在我的收藏夹里,无论是IE.火狐.傲游,从未改变. 然而打开 ...

  8. php每天扒取当天新闻_php 抓取新浪新闻的程序代码

    Jquery中文网 > 脚本编程  > php  > 正文 php 抓取新浪新闻的程序代码 php 抓取新浪新闻的程序代码 发布时间:2016-10-09   编辑:www.jque ...

  9. 模拟新浪新闻在线聊天功能

    前几天看到新浪新闻出现了一个新东西:看同一条新闻的人可以在页面上的一个聊天块中进行聊天. 聊天的程序功能不是什么新鲜事,不过新浪的这个看同一条新闻的人聊天的这个还蛮有意思. 关键的地方就是根据不同的新 ...

最新文章

  1. JSP笔记-点击量统计
  2. Fedora安装Samba与windows共享文件
  3. java gson使用_Java 中 Gson的使用
  4. css3 animatehue属性
  5. 刷牙刷了这么多年,我们居然都搞错了!
  6. 弥勒市召开智慧城市建设规划设计征求意见会
  7. mysql_close6_关于mysql_close()函数的10篇文章推荐
  8. 图像处理技术之分辨率与压缩
  9. 第九节: 利用RemoteScheduler实现Sheduler的远程控制
  10. 【HDU 5532 Almost Sorted Array】水题,模拟
  11. kubelet配置cni插件_不到1分钟,从零完成k3s Kubeconfig配置
  12. paip.自动import的实现跟java.lang.SecurityException Prohibited package name java
  13. win10解压软件哪个好(win10用哪个解压软件)
  14. 学python数据分析心得体会800字_一点学习大数据分析的心得体会
  15. 性能优化-图片压缩格式的选择(ETC和ASTC)
  16. MAF 项目创建流程
  17. QQ小程序开发者工具及官网
  18. Sparse Transformers
  19. 输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3。
  20. 【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?

热门文章

  1. golang 的 strings 包的 Trim 的用法介绍
  2. clean_code总结
  3. python爬虫ip代理没有作用_可能是一份没什么用的爬虫代理IP指南
  4. 期货反向跟单—我们与规律同在
  5. 淘宝/天猫API接口数据调用情况
  6. 如何写产品体验报告?给你一份全面的指南!
  7. 爬取最好大学网排名数据
  8. SAP系统邮件功能配置
  9. javaSE commons-io第三方插件, FilenameUtils工具类,getExtension(),getName(),isExtension()
  10. BIRT 中如何根据参数动态拼接 SQL