python学习,爬取淘宝评论数据

来源:互联网 发布:网络婚恋诈骗现象 编辑:程序博客网 时间:2024/06/11 08:10

从网站访问地址,(学习地址:http://mp.weixin.qq.com/s/oO46GdmGeDdYGvW3B75qsg)找了一个评论地址:
https://rate.tmall.com/list_detail_rate.htm?itemId=521136254098&spuId=345965243&sellerId=2106525799&order=1&currentPage=1

从一个学习网站复制过来的代码

上菜:# 导入所需的开发模块import requestsimport re# 创建循环链接urls = []for i in list(range(1,100)):    urls.append('https://rate.tmall.com/list_detail_rate.htm?itemId=521136254098&spuId=345965243&sellerId=2106525799&order=1&currentPage=%s' %i)# 构建字段容器nickname = []ratedate = []color = []size = []ratecontent = []# 循环抓取数据for url in urls:    content = requests.get(url).text# 借助正则表达式使用findall进行匹配查询    nickname.extend(re.findall('"displayUserNick":"(.*?)"',content))    color.extend(re.findall(re.compile('颜色分类:(.*?);'),content))    size.extend(re.findall(re.compile('尺码:(.*?);'),content))    ratecontent.extend(re.findall(re.compile('"rateContent":"(.*?)","rateDate"'),content))    ratedate.extend(re.findall(re.compile('"rateDate":"(.*?)","reply"'),content))    print(nickname,color)# 写入数据file = open('南极人天猫评价.csv','w')for i in list(range(0,len(nickname))):    file.write(','.join((nickname[i],ratedate[i],color[i],size[i],ratecontent[i]))+'\n')file.close()

我只是安装了python,没有任何类包,上面代码用到了requests,我真是各种百度,

遇到的问题1

都说pip install requests就可以安装了。我试了好几次没成功,结果发现,需要在python的安装目录的scripts文件夹下执行pip install requests,然后安装成功

遇到的问题2

因为爬取的数据里面有汉字,就报错了。应该是编码的问题,然后我就又百度,添加了
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

然后就不报错了

遇到的问题3

写入文件csv失败,原因是该文件没有写权限,就设置了文件的权限,然后成功

遇到的问题4

数据写入文件乱码

import codecsfile.write(codecs.BOM_UTF8)     # 防止乱码

添加了这个类包和代码就不乱码了

遇到的问题5

就是添加了

`# -*- coding: UTF-8 -*-

所以完整的代码

`# -*- coding: UTF-8 -*-import requestsimport reimport codecsimport sysreload(sys)sys.setdefaultencoding( "utf-8" )urls = []for i in list(range(1,100)):    urls.append('https://rate.tmall.com/list_detail_rate.htm?itemId=521136254098&spuId=345965243&sellerId=2106525799&order=1&currentPage=%s' %i)nickname = []ratedate = []color = []size = []ratecontent = []for url in urls:    content = requests.get(url).text  nickname.extend(re.findall('"displayUserNick":"(.*?)"',content))    # color.extend(re.findall(re.compile('颜色分类:(.*?);'),content))    color.extend(re.findall(re.compile('"auctionSku":(.*?);'),content))    # size.extend(re.findall(re.compile('尺码:(.*?);'),content))    ratecontent.extend(re.findall(re.compile('"rateContent":"(.*?)","rateDate"'),content))    ratedate.extend(re.findall(re.compile('"rateDate":"(.*?)","reply"'),content))    # print(ratedate)
file = open('F:\\python\\tmall.csv','wb')file.write(codecs.BOM_UTF8)     # 防止乱码for i in list(range(0,len(nickname))):    file.write(','.join((nickname[i],color[i],ratecontent[i],ratedate[i]))+'\n')file.close()`

以上就是完整的一个案例

原创粉丝点击