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开发实现简单的记事本
Nov 15 Python
5款非常棒的Python工具
Jan 05 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python基于opencv调用摄像头获取个人图片的实现方法
Feb 21 Python
python多线程抽象编程模型详解
Mar 20 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
pycharm sciview的图片另存为操作
Jun 01 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
python re模块和正则表达式
Mar 24 Python
python前后端自定义分页器
Apr 13 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/11/22 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
8个必备的PHP功能开发
2015/10/02 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
Python写的一个简单监控系统
2015/06/19 Python
python excel多行合并的方法
2020/12/09 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
大学生年度自我鉴定
2013/10/31 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
农村婚礼主持词
2014/03/13 职场文书
团日活动总结书格式
2014/05/08 职场文书
践行三严三实心得体会
2014/10/13 职场文书
小学校长个人总结
2015/03/03 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
Python进度条的使用
2021/05/17 Python
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL