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

从网站访问地址,(学习地址: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 requests
import 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 codecs
file.write(codecs.BOM_UTF8)     # 防止乱码

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

遇到的问题5

就是添加了

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

所以完整的代码

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

import requests
import re
import codecs
import sys
reload(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()`

以上就是完整的一个案例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值