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面向对象编程中的类和对象学习教程
Mar 30 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
Python3实现的字典遍历操作详解
Apr 18 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
通过实例了解Python str()和repr()的区别
Jan 17 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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
上海无线电三厂简史修改版
2021/03/01 无线电
JAVA/JSP学习系列之七
2006/10/09 PHP
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
php数组和链表的区别总结
2019/09/20 PHP
基于jquery的跨域调用文件
2010/11/19 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
python中栈的原理及实现方法示例
2019/11/27 Python
python实现简单飞行棋
2020/02/06 Python
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
几道PHP的面试题
2012/05/19 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
室内设计自我鉴定
2013/10/15 职场文书
主管职责范文
2013/11/09 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
五一活动标语
2014/06/30 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
任命书格式范文
2015/09/22 职场文书