python2.7爬取京东商品评论

来源:互联网 发布:淘宝二手3ds 编辑:程序博客网 时间:2024/06/04 19:36
大神请绕路,新手先别急着上车
我们先来了解一下京东商品评论的地址,他们的客户评论看似是在商品页(item.jd.com),但实际上是在club.jd.com/review/这个url里面,要找到这个只要打开浏览器的console看看页面元素的href的连接看仔细点就行。
club.jd.com/review/在这一页里面留心点看看comment-content,你就会有找到你想要的
#encoding:utf-8import urllibfrom snownlp import SnowNLPr = Falsel = ''n = 0sno = raw_input('please input goods number:\n')f = open('jdpl_data3.txt','w')try:    for i in range (1,64) :        p = urllib.urlopen('http://club.jd.com/review/%s-3-%d-0.html'%(sno,i))        for j in p.read():            if j == '\n':                #print l                if r :                    if '</dd>' in l:                        l = l.replace('\t','')                        l = l.replace(' ','')                        l = l.replace('<dd>','')                        l = l.replace('</dd>','')                        n = n+1                        print l                        f.write(str(n))                        f.write(' ')                        f.write(l)                        f.write(' ')                        s = SnowNLP(l.decode('gbk')).sentiments                        f.write(str(s))                        f.write('\n')                        r = False                if 'comment-content' in l :                    r = True                l = ''            else:                l = l + jexcept Exception,e:    f.close()f.close()print 'All Finish!'
里面的snownlp模块是用来进行情感分析的,将评论解码成unicode格式,然后调入snownlp模块的sentisments就可以得到一个感情值,0.5中性,越接近1越是喜欢,越接近0越是厌恶
在这个url: http://club.jd.com/review/%s-3-%d-0.html 
%s是我们一开始输入的商品代号,%d是评论的第几页,京东的客户评论一页有20条,通过for循环,我可以把所有的评论页都遍历一遍
每次抓取网页的主要思路是先找到标签里的comment-content,然后将r设置为true,之后等到爬取的html行中出现<dd>,就提取<dd></dd>标签里的评论,然后将r设置为false继续读取下一行html内容直到读取完网页内容,或者网页不存在为止
程序抓取的评论会保存在同目录下的 jdpl_data3.txt 文件里面
最后实现的效果请看:http://pan.baidu.com/s/1c2kXPSW 或者下载资源包http://download.csdn.net/detail/baidu_28795717/9830483


1 0
原创粉丝点击