最近学习了json模块,并用它爬取了网易的评论。

爬取的是“最近华北空气污染严重”的新闻(http://comment.news.163.com/news3_bbs/B9MBB38O00014Q4P.html)

1、首先获取json格式的文件:我用的是360浏览器(貌似用谷歌比较好,但我谷歌出了点问题所以用的360,不过没啥影响)

打开评论的网页,选取‘工具—开发人员工具’,或直接按F12,得到如下工具,点击Network,可以直接点 Scripts 得到 json 文件,一开始不知道评论是哪个文件。后来发现后缀名是 .html 的是评论网页。

2、网址:网易的评论有两种,一个是热门跟帖,一个是最新跟帖,两种帖子的网址不同,其中热门只有一个,而最新是多页的

#热门跟帖,也许它后面有个"_1",但若改成“_2”或更大时,它都长得一样但并不是评论!
http://comment.news.163.com/data/news3_bbs/df/B9MBB38O00014Q4P_1.html
#最新跟帖
http://comment.news.163.com/cache/newlist/news3_bbs/B9MBB38O00014Q4P_1.html</span>

所以要同时爬取两种网址。

3、处理字符串:用  json.loads()  解码字符串转换为python形式时格式很重要,在这里转换成字典形式。

将开头和结尾去掉,只剩下一个大字典,并去掉里面多余的信息

开头:

结尾:

这时候可以  printpost.keys() 试一下,可以得到字典中的键,在两种网址中,包含评论的键为:

接着获取这两个键里的值,可以得到每条帖子的信息:

接下来就可以获得评论了。

4、报错:socket.error: [Errno 10054],查了一下是远程主机重置了链接,是大量访问的原因,加了一个 time.sleep()就好了。

5、代码如下:

#coding=utf-8
import urllib2
import json
import re
import time
class WEPL:def __init__(self):self.user_agent = 'Mozilla/4.0(compatible;MSIE 5.5;Windows NT)'self.headers = {'User_Agent' :self.user_agent}self.url1='http://comment.news.163.com/data/news3_bbs/df/B9MBB38O00014Q4P_1.html'def getPageIndex(self,pageIndex):url2='http://comment.news.163.com/cache/newlist/news3_bbs/B9MBB38O00014Q4P_'+str(pageIndex)+'.html'return url2def getHtml(self,url):try:request=urllib2.Request(url,headers=self.headers)response=urllib2.urlopen(request)html=response.read()return htmlexcept urllib2.URLError,e:if hasattr(e,'reason'):print u'loading error',e.reasonreturn Nonedef getPost(self):for i in range(1,10):#两种网址分开处理if i==1:html=self.getHtml(self.url1)data1=re.sub('^var replyData=','',html)data2=data1[:-1]else:url2=self.getPageIndex(i)html=self.getHtml(url2)data1=re.sub('^var newPostList=','',html)data2=data1[:-2]data3=re.sub("&nbsp;\[\<a href=''\>(.*?)\<\\\\/a\>\]: ","",data2)data4=re.sub("\<span (.*?)\<\\\\/span\>","",data3)data5=re.sub("\<br\>","",data4)#将json文件解码为python格式post=json.loads(data5)if i==1:for allvalue in post['hotPosts']:with open('pl3.txt','a+') as fd:fd.write(allvalue['1']['f'].encode('utf-8')+'('+'IP:')fd.write(allvalue['1']['ip'].encode('utf-8')+')'+'\n'+'---')fd.write(allvalue['1']['b'].encode('utf-8')+'\n')else:for allvalue in post['newPosts']:with open('pl3.txt','a+') as fd:fd.write(allvalue['1']['f'].encode('utf-8')+'('+'IP:')fd.write(allvalue['1']['ip'].encode('utf-8')+')'+'\n'+'---')fd.write(allvalue['1']['b'].encode('utf-8')+'\n')#防止链接被重置time.sleep(2)
spider=WEPL()
spider.getPost()

python爬取网易评论相关推荐

  1. python爬取歌曲评论_python 爬取歌曲评论的简单示例

    这篇文章主要为大家详细介绍了python 爬取歌曲评论的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣python 爬取歌曲评论的简单示例的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. ...

  2. 看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云

    简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧.通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦! 很多人学习python,不知道从何学起. 很多人学习python,掌 ...

  3. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  4. python3爬取微博评论教程_用python 爬取微博评论,怎么打开微博评论下的查看更多|...

    怎样用python爬新浪微博大V所有数据 先上结论,通过公开的api如爬到某大v的所有数据,需足以下两个条件: 1.在你的爬虫开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000, ...

  5. python爬取微博评论(无重复数据)

    python爬取微博评论(无重复数据) 前言 一.整体思路 二.获取微博地址 1.获取ajax地址2.解析页面中的微博地址3.获取指定用户微博地址 三.获取主评论 四.获取子评论 1.解析子评论2.获 ...

  6. python爬取快手评论信息+快手号

    python爬取快手评论信息+快手号 潦草记录一下思路 从浏览器进行抓包,分析提交参数, 1.从手机中打开快手,找到需要爬取的视频,转发复制链接,从网页中打开 2.按F12进入开发者模式,进行抓包 3 ...

  7. python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据

    python 爬虫 爬微博分析 数据 最近刚看完爱情公寓5,里面的大力也太好看了吧... 打开成果的微博,小作文一样的微博看着也太爽了吧... 来 用python分析分析 狗哥这几年微博的干了些啥. ...

  8. python爬取豆瓣评论,并制作成词云

    一.爬取豆瓣热评 该程序进行爬取豆瓣热评,将爬取的评论(json文件)保存到与该python文件同一级目录下 注意需要下载这几个库:requests.lxml.json.time import req ...

  9. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  10. python 东哥 with open_向娱乐圈看齐,Python爬取微博评论并制作酷炫的词云!

    2019年伊始,祝愿各位多吃不胖,身体倍儿棒! image 回顾刚刚过去的2018,还有哪些新闻在你心底留有印象? image 怎奈年纪增长,记忆减退,逝去的爆炸新闻也逐渐褪色变得索然无味,毕竟一直以 ...

最新文章

  1. python实现密码的强度_字符串处理函数(二)python语言实现密码强度校验
  2. Samba的主配置文件
  3. Barracuda Backup 5.4版本添加了更多云存储
  4. C++基础知识之vector
  5. 过去式加ed的发音_过去式的变化规律,掌握诀窍了吗?
  6. 30 个很棒的 PHP 开源 CMS 内容管理系统
  7. OSGI-flex-blazeds通信
  8. PyTorch——深度神经网络的写作笔记
  9. Sun 解决方案大会归来
  10. Elasticsearch 安装的时候,Unsupported major.minor version 51.0问题的解决
  11. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用
  12. QQ所有文件和目录详细分析
  13. 域的基本管理:统一公司部门桌面
  14. python二进制转十进制编程_怎么用python二进制转换十进制
  15. 倾斜摄影静态单体化 BIM模型调用解决思路
  16. python实现3d人物建模_一张图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源...
  17. Android多媒体添加软解码
  18. 夜光:Java成神之路(二)擅长的语言
  19. js jquery新窗口打开的几种方式
  20. geoserver给天地图添加服务,给线加标注

热门文章

  1. python连连看小游戏_python之自动化连连看脚本-第一关不动-小记
  2. python标准差不用numpy_Python numpy标准差
  3. 计算机技术服务业成本核算,如何进行服务行业的成本核算
  4. yapi 数据库隔天数据就全没了_Yapi 部署
  5. 周鸿祎:做到这五点,才算是好用户体验
  6. springboot 问卷调查系统
  7. 1. 数理统计---数理统计基本概念
  8. Excel画饼图(立体的哦)
  9. ecshop微信登录php代码,Ecshop实现微信第三方授权扫码登录
  10. Kingston U盘 量产