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

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

首先我们打开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的内容。

下面开始编写我们爬虫:

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

import json

import requests

from bs4 import BeautifulSoup

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

def get_page(page):

url_temp = ‘http://temp.163.com/special/00804KVA/cm_guonei_0{}.js’

return_list = []

for i in range(page):

url = url_temp.format(i)

response = requests.get(url)

if response.status_code != 200:

continue

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

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

result = json.loads(_content)

return_list.append(result)

return return_list

对Python感兴趣或者是正在学习的小伙伴,可以加入我们的Python学习扣qun:855408893 ,从0基础的python脚本到web开发、爬虫、django、数据挖掘数据分析等,0基础到项目实战的资料都有整理。送给每一位python的小伙伴!每晚分享一些学习的方法和需要注意的小细节,学习路线规划,利用编程赚外快。点击加入我们的 python学习圈

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

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

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

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

我们看到文章来源在文档中的位置为:id = “ne_article_source” 的 a 标签。

作者位置为:class = “ep-editor” 的 span 标签。

正文位置为:class = “post_text” 的 div 标签。

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

def get_content(url):

source = ‘’

author = ‘’

body = ‘’

resp = requests.get(url)

if resp.status_code == 200:

body = resp.text

bs4 = BeautifulSoup(body)

source = bs4.find(‘a’, id=‘ne_article_source’).get_text()

author = bs4.find(‘span’, class_=‘ep-editor’).get_text()

body = bs4.find(‘div’, class_=‘post_text’).get_text()

return source, author, body

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

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

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

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

Python爬取网易新闻,就是这么简单!相关推荐

  1. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  2. 用Python爬取网易新闻

    很多人可能每天都要浏览新闻,但是每一天都需要刷很多的新闻客户端.今天就用Python大法来解决你的烦恼,让你一次看个够... 基本思路 爬取新闻的方法有很多,可以通过解析网页,也可以利用API爬取.今 ...

  3. Python+beautifulsoup+requests 爬取网易新闻评论

    前段时间在看处理数据相关的书籍,实践中需要一些网上评论的文本数据集,所以想到爬取网易新闻底下的评论.本来想着Python+beautifulsoup(解析)+requests(抓取),最后存储在txt ...

  4. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  5. python爬取热门新闻每日排行_爬取网易新闻排行榜

    #网络爬虫之最基本的爬虫:爬取[网易新闻排行榜](http://news.163.com/rank/) **一些说明:** * 使用urllib2或requests包来爬取页面. * 使用正则表达式分 ...

  6. python爬网易新闻_Python爬虫实战教程:爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...

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

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

  8. python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜

    爬虫基本介绍 1. 什么是爬虫? 爬虫是请求⽹网站并提取数据的⾃自动化程序 2. 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers ...

  9. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

最新文章

  1. GridView单元格取值显示为nbsp;
  2. 【整合篇】Activiti业务与流程的整合
  3. android脚步---设置layout隐藏属性
  4. 分分钟入门【Nodejs】—一个网页是如何生成的
  5. WCF分发简述-ChannelDispatcher,EndpointDispatcher,MessageFilter
  6. mysql字符串字段类型_MySQL字符串字段类型选择的一般规则
  7. 【 .NET Core 3.0 】框架之五 || JWT权限验证
  8. jeewx-qywx-api 1.0版发布,微信企业号Java SDK
  9. 前端:CSS/14/综合案例:传智首页
  10. Java从0开始之Java环境搭建
  11. sqlite转sql2000数据库
  12. COJ 0358 xjr考考你数据结构(根号3)线段树区间修改
  13. quartus dcfifo操作
  14. .NET反编译:使用NET.Reflector+Reflexil插件相结合实现对DLL文件的修改操作
  15. GSMA SGP.21协议学习
  16. ubuntu | 命令行中输出文件夹下的文件+输出某个后缀的文件+文件名作为参数运行py脚本
  17. 51CTO稿酬标准2016版正式发布!
  18. java 代码性能优化_Java代码性能优化的几个小技巧
  19. 2019年1月8日个人总结
  20. 博图当前项目包含冗余服务器组态,博途中WINCC组态问题

热门文章

  1. 不需要下载电脑软件,就能解决U盘里不显示文件的两种方法
  2. Siemens HEEDS MDO 2021.1.1 x64
  3. Java--利用TCP编写一个简单的聊天工具
  4. 7年华为老员工被辞退,公司赔偿N+4,网友:多拿11个月工资,爽翻
  5. 电路板的地如何与外壳地相连?
  6. python中常量池和堆_常量池和堆的区别
  7. 【IDEA学生认证】学生党白漂IDEA宝典
  8. 自选功能创建项目(vue2)
  9. SQL取并集 差集 交集
  10. 时间同步服务器注册表,Win Server2012 NTP时间同步服务器配置方法总结