Python实现的爬取网易动态评论操作示例


Posted in Python onJune 06, 2018

本文实例讲述了Python实现的爬取网易动态评论操作。分享给大家供大家参考,具体如下:

打开网易的一条新闻的源代码后,发现并没有所要得评论内容。

经过学习后发现,源代码只是一个完整页面的“骨架”,而我所需要的内容是它的填充物,这时候需要打开工具里面的开发人员工具,从加载的“骨肉”里找到我所要的评论

Python实现的爬取网易动态评论操作示例

圈住的是类型

找到之后打开网页,发现json类型的格式,用我已学过的正则,bs都不好闹,于是便去了解了正则,发现把json的格式换化成python的格式后,用列表提取内容是一条明朗的道路。。。

但是在细致分析的时候也发现了问题

Python实现的爬取网易动态评论操作示例

从这里获得每条评论时,感觉有点不对,观察发现如果是回复评论的评论会出现他回复那条评论的数据,于是用正则提取了一下

最终的代码如下:

#coding=utf-8
__author__ = 'kongmengfan123'
import urllib
import re
import json
import time
def gethothtml(url):#最热评论
  page=urllib.urlopen(url)
  html=page.read()
  get_json(html)
def gethnewtml():#最新评论有5页
  for i in range(1,6):
    url = 'http://comment.news.163.com/api/v1/products/a2869674571f77b5a0867c3d71db5856/threads/C4QFIJNS0001875O/comments/newList?offset=%d&limit=30&showLevelThreshold=72&headLimit=1&tailLimit=2&callback=getData&ibc=newspc&_=1478010624978'%i*30
    page = urllib.urlopen(url)
    html=page.read()
    time.sleep(1)
    get_json(html)
def get_json(json_):
  end_=re.compile(r'\);')#将json网页转化成python数据
  begain=re.compile(r'getData\(')
  json_=begain.sub('',json_)
  json_=end_.sub('',json_)
  ajson=json.loads(json_)
  lis=ajson["commentIds"]#获得每条评论的键
  n=0
  for i in range(1,len(lis)):
    try:
      xulie=re.compile('\d{10,}')#取得准确评论的键(去掉回复)
      bia=re.findall(xulie,lis[n])
      w.write(ajson['comments'][bia[len(bia)-1]]['user']['nickname'].encode('utf-8')+'|')
    except KeyError:
      w.write(ajson['comments'][bia[len(bia)-1]]['user']['location'].encode('utf-8')+'|')
    if (len(lis[n])>13):
      xulie=re.compile('\d{10,}')
      bia=re.findall(xulie,lis[n])
      w.write(ajson['comments'][bia[len(bia)-1]]['content'].encode('utf-8')+'\n')
    else:
       w.write(ajson['comments'][lis[n]]['content'].encode('utf-8')+'\n')
    n=n+1
  return lis
w=open('wangyi.txt','w')
w.write('用户名'+'|'+'热门评论'+'\n')
hot_=gethothtml('http://comment.news.163.com/api/v1/products/a2869674571f77b5a0867c3d71db5856/threads/C4QFIJNS0001875O/comments/hotList?offset=0&limit=40&showLevelThreshold=72&headLimit=1&tailLimit=2&callback=getData&ibc=newspc')
w.write('用户名'+'|'+'最新评论'+'\n')
gethnewtml()
w.close()

成功。

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Python中利用Pandas库处理大数据的简单介绍
Apr 07 Python
Python缩进和冒号详解
Jun 01 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
python 读入多行数据的实例
Apr 19 Python
Windows下PyCharm安装图文教程
Aug 27 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
python2和python3在处理字符串上的区别详解
May 29 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
python中使用np.delete()的实例方法
Feb 01 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 #Python
利用python如何处理百万条数据(适用java新手)
Jun 06 #Python
Python3实现的Mysql数据库操作封装类
Jun 06 #Python
python操作redis方法总结
Jun 06 #Python
目前最全的python的就业方向
Jun 05 #Python
python多进程提取处理大量文本的关键词方法
Jun 05 #Python
使用python进行文本预处理和提取特征的实例
Jun 05 #Python
You might like
新浪新闻小偷
2006/10/09 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
删除节点的jquery代码
2014/01/13 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
Python获取央视节目单的实现代码
2015/07/25 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python递归函数实例讲解
2019/02/27 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
Python过滤序列元素的方法
2020/07/31 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
《泉水》教学反思
2014/04/11 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
先进个人自荐书
2015/03/06 职场文书
为自己工作观后感
2015/06/11 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
高质量“欢迎词”
2019/04/03 职场文书