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发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
用python写一个windows下的定时关机脚本(推荐)
Mar 21 Python
详解Golang 与python中的字符串反转
Jul 21 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 Python
PyTorch预训练的实现
Sep 18 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
使用pandas的box_plot去除异常值
Dec 10 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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一些公用函数的集合
2008/03/27 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
DOM事件探秘篇
2017/02/15 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python 错误和异常代码详解
2018/01/29 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
便利店的创业计划书
2014/01/15 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
安全生产管理责任书
2014/04/16 职场文书
交通事故协议书范文
2014/04/16 职场文书
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL