python爬取网易评论
学习python不久,最近爬的网页都是直接源代码中直接就有的,看到网易新闻的评论时,发现评论时以json格式加载的.....
爬的网页是习大大2015访英的评论页http://comment.news.163.com/news_guonei8_bbs/SPEC0001B60046CG.html
步骤如下:
1.使用谷歌浏览器分析网页首页加载的数据
打开网页----按下F12----点击Network,此时是空的

刷新以后,会出现如下图:(我以前加载过页面,所以json数据显示的不全)

点击其中的一个json格式的文件,找到url,并在网页中打开,看看是不是自己想要的数据:

我第一次访问网页的时候打了三个,只有一个是并论的内容,首页的网址为:
http://comment.news.163.com/data/news_guonei8_bbs/df/SPEC0001B60046CG_1.html?_=14455959217790
数据为:

2.其他评论页
在点击其他评论页时,先点击一下Network中的清除按钮,方便查找json---从第二页开始观察,几乎都一样

点击找到url,并在浏览器中打开

数据虽然是乱码的,在Python中读取到的是可以正常查看的

3.网址规律
一开始以为网址后面的
有什么规律,后来发现去掉也没影响,
所以只要把页数换成对应的评论页就好了(我只能打开34页??)
4.代码
注:由于数据开始有变量名,结尾有分号,在使用json.loads(data)时报错,所以先对数据进行处理
# encoding=utf-8 import urllib2
import json
import re
import time
class JSON():
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/news_guonei8_bbs/df/SPEC0001B60046CG_1.html'
def getUrls(self,pageIndex):
url2='http://comment.news.163.com/cache/newlist/news_guonei8_bbs/SPEC0001B60046CG_'+str(pageIndex)+'.html'
return url2
def getHtml(self,url):
try:
request=urllib2.Request(url,headers=self.headers)
respone=urllib2.urlopen(request)
html=respone.read()
return html
except urllib2.URLError,e:
if hasattr(e,'reason'):
print u"连接失败",e.reason
return None
#处理字符串,没有处理干净的可以再打开文件进行处理
def strDeal(self,data,pageIndex):
if pageIndex==1:
data=data.replace('var replyData=','')
else:
data=data.replace('var newPostList=','')
reg=re.compile(" \[<a href=''>")
data=reg.sub('--',data)
reg2=re.compile('<\\\/a>\]')#<\/a>]的正则?
data=reg2.sub('',data)
reg3=re.compile('<br>')
data=reg3.sub('',data)
return data
#解析json数据并存入文件
def parserJson(self):
with open('wangyi2.txt','a') as f:
f.write('用户ID'+'|'+'评论'+'|'+'点赞数'+'\n')
for i in range(1,35):
if i==1:
url=self.url1
data=self.getHtml(url)
data=self.strDeal(data,i)[:-1]
value=json.loads(data)
f=open('wangyi2.txt','a') for item in value['hotPosts']:
f.write(item['']['f'].encode('utf-8')+'|')
f.write(item['']['b'].encode('utf-8')+'|')
f.write(item['']['v'].encode('utf-8')+'\n')
f.close()
print 'sleeping pageload %d/34'%i
time.sleep(6)
else:
url=self.getUrls(i)
data=self.getHtml(url)
data=self.strDeal(data,i)[:-2]
# 转换,一开始得到的数据类型为str,使用json.loads()函数,得到原始数据,此时的value的数据类型为dict,接下来就可以正常访问字典了。
value=json.loads(data)
f=open('wangyi2.txt','a') for item in value['newPosts']:
f.write(item['']['f'].encode('utf-8')+'|')
f.write(item['']['b'].encode('utf-8')+'|')
f.write(item['']['v'].encode('utf-8')+'\n') f.close()
print 'sleeping pageload %d/34'%i
time.sleep(6) js=JSON()
js.parserJson()
python爬取网易评论的更多相关文章
- 如何利用python爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...
- 用 Python 爬取网易严选妹子内衣信息,探究妹纸们的偏好
网易商品评论爬取 分析网页 评论分析 进入到网易精选官网,搜索“文胸”后,先随便点进一个商品. 在商品页面,打开 Chrome 的控制台,切换至 Network 页,再把商品页Python入门到精通学 ...
- 票房和口碑称霸国庆档,用 Python 爬取猫眼评论区看看电影《我和我的家乡》到底有多牛
今年的国庆档电影市场的表现还是比较强势的,两名主力<我和我的家乡>和<姜子牙>起到了很好的带头作用. <姜子牙>首日破 2 亿,一举刷新由<哪吒之魔童降世&g ...
- python爬取京东评论
一.分析 1.找到京东商品评论所在位置(记得点击商品评论,否则找不到productPageComments.action) 2.解析文件 打开后发现是json数据,但不是那么规范,所以需要去点前面的 ...
- Python爬取新浪微博评论数据,写入csv文件中
因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...
- python爬取网易翻译 和MD5加密
一.程序需要知识 1.python中随机数的生成 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0, ...
- 用Python爬取了三大相亲软件评论区,结果...
小三:怎么了小二?一副愁眉苦脸的样子. 小二:唉!这不是快过年了吗,家里又催相亲了 ... 小三:现在不是流行网恋吗,你可以试试相亲软件呀. 小二:这玩意靠谱吗? 小三:我也没用过,你自己看看软件评论 ...
- python爬取股票最新数据并用excel绘制树状图
大家好,最近大A的白马股们简直 跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊. 不过从金融界最近一个交易日的大盘云图来看,其实很多中小股还是红色滴,绿的都是白马股们. 以下截图 ...
- Python爬取腾讯新闻首页所有新闻及评论
前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...
随机推荐
- C语言 04 进制
%d 或者%i 十进制 %c 输出字符 %p 输出地址 %f 输出小数 %o 八进制 %x 十六进制 一个int类型变量占4字节,占32bit(位) 例子:十进制 int=12 转二进制 0000 ...
- arm 2440 linux 应用程序 nes 红白机模拟器 第2篇 InfoNES
InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES 的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame () Wo ...
- 【转】SVN添加文件时的错误处理:...\conf\svnserve.conf:12: Option expected
转载地址:http://www.linuxidc.com/Linux/2014-09/106683.htm 安装完SVN服务器,添加完用户权限后,准备将本地的项目add到服务器上时,报"C: ...
- 一个ubuntu phper的自我修养(workbench)
workbench从此和navicat的激活码说再见 workbench是一个免费易用功能强大的mysql图形化管理软件,navicat上用到的功能,workbench上都能找到. 一.workben ...
- 2016年12月29日 星期四 --出埃及记 Exodus 21:24
2016年12月29日 星期四 --出埃及记 Exodus 21:24 eye for eye, tooth for tooth, hand for hand, foot for foot,以眼还眼, ...
- ubuntu和windows上pip和windows上conda国内源更新module
ubuntu上: -i http://pypi.douban.com/simple --trusted-host pypi.douban.com # pip install web.py -i htt ...
- 简单利用Scanner对文件进行解析
public class AvPrice{ static int count = 0; static int sum = 0; public static void main(Str ...
- 首师大附中科创教育平台 我的刷题记录 0304 50095106扔核弹(XDC,你懂的)
今天给大家献上"C"级题:50095106扔核弹(XDC,你懂的)!! 试题编号:0304 50095106扔核弹(XDC,你懂的) 难度级别:C: 运行时间限制:1000ms ...
- Cheatsheet: 2016 08.01 ~ 08.31
.NET Getting Started with ASP.NET Core and VS Code Coding Standard Best Practices In C# Wire – Writi ...
- reverseajax(comet) socket 杂记
http://blog.it985.com/7797.html http://www.ibm.com/developerworks/web/library/wa-reverseajax1/index. ...