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 27 Python
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
对python周期性定时器的示例详解
Feb 19 Python
Python中按值来获取指定的键
Mar 04 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
python判断正负数方式
Jun 03 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 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/10/09 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
利用Python破解斗地主残局详解
2017/06/30 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
Linux文件系统类型
2012/02/15 面试题
土建专业大学生自荐信范文
2014/04/09 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
总结Python使用过程中的bug
2021/06/18 Python