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 相关文章推荐
通过数据库向Django模型添加字段的示例
Jul 21 Python
python中input()与raw_input()的区别分析
Feb 27 Python
Python中的id()函数指的什么
Oct 17 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
详解python做UI界面的方法
Feb 27 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
python中os.path.join()函数实例用法
May 26 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
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
JavaScript 原型继承
2011/12/26 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
如何用JS判断两个数字的大小
2016/07/21 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python while 循环使用的简单实例
2016/06/08 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
群众路线党课主持词
2014/04/01 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
老干部工作汇报材料
2014/10/28 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS