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判断字符串与大小写转换
Jun 08 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Numpy的简单用法小结
Aug 28 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python 发送json数据操作实例分析
Oct 15 Python
Python使用GitPython操作Git版本库的方法
Feb 29 Python
Python request使用方法及问题总结
Apr 26 Python
python如何写try语句
Jul 14 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
JS解析XML实例分析
2015/01/30 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
angularjs http与后台交互的实现示例
2018/12/21 Javascript
python实现dict版图遍历示例
2014/02/19 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
numpy数组拼接简单示例
2017/12/15 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
学生检讨书怎么写
2015/05/07 职场文书
特种设备安全管理制度
2015/08/06 职场文书
PHP判断是否是json字符串
2021/04/01 PHP
Javascript webpack动态import
2022/04/19 Javascript
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技