前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: Amauri

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

此文属于入门级级别的爬虫,老司机们就不用看了。

本次主要是爬取网易新闻,包括新闻标题、作者、来源、发布时间、新闻正文。

首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻。然后鼠标右键点击查看源代码,发现源代码中并没有页面正中的新闻列表。这说明此网页采用的是异步的方式。也就是通过api接口获取的数据。

那么确认了之后可以使用F12打开谷歌浏览器的控制台,点击Network,我们一直往下拉,发现右侧出现了:"... special/00804KVA/cm_guonei_03.js? .... "之类的地址,点开Response发现正是我们要找的api接口。

可以看到这些接口的地址都有一定的规律:“cm_guonei_03.js”、 “cm_guonei_04.js”,那么就很明显了:

http://temp.163.com/special/0...*).js

上面的连接也就是我们本次抓取所要请求的地址。

接下来只需要用到的python的两个库:

requests

json

BeautifulSoup

requests库就是用来进行网络请求的,说白了就是模拟浏览器来获取资源。

由于我们采集的是api接口,它的格式为json,所以要用到json库来解析。BeautifulSoup是用来解析html文档的,可以很方便的帮我们获取指定div的内容。

下面开始编写我们爬虫:

第一步先导入以上三个包:

importjsonimportrequestsfrom bs4 import BeautifulSoup

接着我们定义一个获取指定页码内数据的方法:

1 defget_page(page):2 url_temp = 'http://temp.163.com/special/00804KVA/cm_guonei_0{}.js'

3 return_list =[]4 for i inrange(page):5 url =url_temp.format(i)6 response =requests.get(url)7 if response.status_code != 200:8 continue

9 content = response.text #获取响应正文

10 _content = formatContent(content) #格式化json字符串

11 result =json.loads(_content)12 return_list.append(result)13 return return_list

这样子就得到每个页码对应的内容列表:

之后通过分析数据可知下图圈出来的则是需要抓取的标题、发布时间以及新闻内容页面。

既然现在已经获取到了内容页的url,那么接下来开始抓取新闻正文。

在抓取正文之前要先分析一下正文的html页面,找到正文、作者、来源在html文档中的位置。

我们看到文章来源在文档中的位置为:id = "ne_article_source" 的 a 标签。作者位置为:class = "ep-editor" 的 span 标签。正文位置为:class = "post_text" 的 div 标签。

下面试采集这三个内容的代码:

1 defget_content(url):2 source = ''

3 author = ''

4 body = ''

5 resp =requests.get(url)6 if resp.status_code == 200:7 body =resp.text8 bs4 =BeautifulSoup(body)9 source = bs4.find('a', id='ne_article_source').get_text()10 author = bs4.find('span', class_='ep-editor').get_text()11 body = bs4.find('div', class_='post_text').get_text()12 return source, author, body

到此为止我们所要抓取的所有数据都已经采集了。

那么接下来当然是把它们保存下来,为了方便我直接采取文本的形式来保存。下面是最终的结果:

格式为json字符串,“标题” : [ ‘日期’, ‘url’, ‘来源’, ‘作者’, ‘正文’ ]。

要注意的是目前实现的方式是完全同步的,线性的方式,存在的问题就是采集会非常慢。主要延迟是在网络IO上,可以升级为异步IO,异步采集。

python爬网易新闻_Python爬虫实战教程:爬取网易新闻相关推荐

  1. python爬网易新闻_Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

    Python爬虫实战教程:爬取网易新闻:爬虫精选 高手技巧 发布时间:2020-02-21 17:42:43 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有, ...

  2. 如何运用python爬游戏皮肤_Python爬虫实战之 爬取王者荣耀皮肤

    王者荣耀是目前非常火的一款游戏,相信大家都对其中的人物很感兴趣,那么今天就带大家来爬取王者荣耀的皮肤,可以选一款喜欢的来当电脑壁纸.第一步,拿到url地址 第二步,获取各个人物皮肤数据 第三步,保存文 ...

  3. python录音详解_Python爬虫实战案例:取喜马拉雅音频数据详解

    前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...

  4. python爬取汽车之家_python爬虫实战之爬取汽车之家网站上的图片

    随着生活水平的提高和快节奏生活的发展.汽车开始慢慢成为人们的必需品,浏览各种汽车网站便成为购买合适.喜欢车辆的前提.例如汽车之家网站中就有最新的报价和图片以及汽车的相关内容,是提供信息最快最全的中国汽 ...

  5. python爬取新闻网站内容_python爬虫案例:抓取网易新闻

    此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻.然后鼠 ...

  6. python爬取腾讯新闻_python爬虫实战――爬取腾讯新闻 !

    无论我们通过浏览器打开网站.访问网页,还是通过脚本对URL网址进行访问,本质上都是对HTTP服务器的请求,浏览器上所呈现的.控制台所显示的都是HTTP服务器对我们请求的响应. 以打开腾讯新闻官网为例, ...

  7. python爬虫经典段子_Python爬虫实战之爬取糗事百科段子

    首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...

  8. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现

    这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...

  9. python爬虫-爬妹子图_Python 爬虫入门之爬取妹子图

    Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...

最新文章

  1. 7个华丽的基于Canvas的HTML5动画
  2. 【转】Spring事务超时时间可能存在的错误认识
  3. 基于分位数回归的动态CoVaR计算 案例与代码
  4. 力扣883.三维体投影面积
  5. php判断当前页面是否有权限,php判断是否有权限下载
  6. CSS3自定义浏览器滚动条样式
  7. 深入分析linux内核源码
  8. R中双表操作学习[转载]
  9. Linux突然断电后文件丢失的问题
  10. php使用循环语句输出二位数组,PHP中遍历二维数组—以不同形式的输出操作
  11. 简单的自动化测试脚本
  12. 4G-LTE技术总结
  13. U盘启动盘还原的方法
  14. 美团后端2020.4.23笔试题目
  15. 仿微信控制输入法的显示和隐藏
  16. 攻防实战 | 芙蓉区网络安全技能大比武暨网络安全应急攻防演练圆满结束!
  17. HTML中的 a标签
  18. 【ML】英雄联盟对局胜负预测任务
  19. Camera Daemon
  20. TRMM降水数据下载和处理

热门文章

  1. java排行榜任务积分redis_Redis 实现用户积分排行榜
  2. 使用scala轻松完成wordcount统计案例
  3. 迭代和递归的关系和区别
  4. keil添加hal库_一、使用HAL库建立STM32工程
  5. 蓝牙DA14580学习教程(附开源可编程手环/手表全套学习资料下载地址)
  6. 关于产品的一些思考——写在前面的话
  7. PK3:再回潘石屹先生信:理越忽悠越不明
  8. TIM+ADC+DMA
  9. 个人小程序接入支付解决方案
  10. JBPM中的任务分配 - Swimlanes(泳道)