python网页数据抓取( 难不成我抓不了天猫网站的评论数据了?(图))
优采云 发布时间: 2022-03-15 20:19python网页数据抓取(
难不成我抓不了天猫网站的评论数据了?(图))
天气越来越冷,觉得应该给自己添点暖和的衣服,于是想到了天猫,搜了一下,感觉南极人的保暖内衣还是不错的。这么多衣服怎么选?我通常选择按销售额排序。毕竟销量也能反映产品的热度和口碑状况,所以来到了这个页面%C4%CF%BC%AB%C8%CB%B1%A3%C5%AF%C4 %DA% D2%C2&sort=d&style=g&from=.list.pc_1_suggest&suggest=0_1#J_Filter,
然后点进去后发现有很多历史累积评价,于是我一页一页地查看,感觉口碑还是很好的,所以选择了这款产品。我想每个人的购物方式可能都一样,可能会比较复杂(货比三家,比较口碑,联系卖家……)。
如果有一天,我想研究这些评论数据,然后玩自然语言处理,我应该把这些评论复制到一个大表中吗?虽然可以这样做,但我总觉得效率有点低(不是比爬虫低一两个数量级~)。如果你会爬行,你就会感受到自动化带来的刺激。接下来,我们将研究如何使用Python爬取天猫的评论数据。
像往常一样打牌,发现它是自然而柔软的。. . .
一般的套路是这样的。在上面的评论页面,右键选择“查看网页源代码”,代码如下:
我想在原网页中搜索“好,高级,划算”的评论,这句话在源代码中,很不幸,当我按Ctrl + F并输入“好”时,没有这样的东西这样的话。. . 是不是抓不到天猫网站的评论数据?不,还是有方法的,但是不能打常规卡,因为天猫的评论数据是异步存储在别处的。
非常规方法,双眼发光!
在评论页面上,我们按下 F12 键(我使用的是 Chrom 浏览器),结果如下:
可能你的页面布局有上下两部分,下半部分什么都没有。这时候需要做两件事: 1.选择Network下的JS部分,因为天猫的评论数据是异步存储在一个JS连接中的。2、刷新页面,找到一个开头叫“list_detail_rate”的文件。当你打开这个文件时,它看起来像这样:
你会发现有一个请求连接,然后你只需要复制链接并把这个地址粘贴到浏览器中,你会发现这些评论都隐藏在这个地方。. .
哈哈,那我们可以用正则表达式来抓取类似红框的信息(用户昵称、评论时间、购买的包裹、衣服尺码、评论内容)。你也可以问一个问题。您的页面只是评论信息的页面。如何捕获所有页面上的所有评论信息?我们发现了一个规则,复制的连接可以总结成这样的形式:每次改变最后一个 currentPage 的值,就可以抓取到不同页面的评论信息。
爬虫知识:
请求模块:
get方法向对端服务器发送url请求;
text方法可以将get请求的响应转换成文本字符串格式;
重新模块:
findall 函数使用正则表达式查找文本中所有匹配的结果,语法格式:
findall(模式、字符串、标志)
模式接受一个正则表达式对象;
string 接受需要处理的字符串;
flags 接受一个模式参数,比如是否忽略大小写(flags = re.I);
服务:
# 导入需要的开发模块
导入请求
重新*敏*感*词*
# 创建循环链接
网址 = []
对于列表中的我(范围(1,100)):
urls.append('%s' %i)
# 构建字段容器
昵称 = []
评级 = []
颜色 = []
大小 = []
率内容 = []
# 循环抓取数据
对于网址中的网址:
内容 = requests.get(url).text
# 使用 findall 匹配带有正则表达式的查询
nickname.extend(re.findall('"displayUserNick":"(.*?)"',content))
color.extend(re.findall(pile('颜色分类:(.*?);'),content))
size.extend(re.findall(pile('Size:(.*?);'),content))
ratecontent.extend(re.findall(pile('"rateContent":"(.*?)","rateDate"'),content))
ratingate.extend(re.findall(pile('”rateDate”:”(.*?)”,”reply”'),content))
打印(昵称,颜色)
# 数据输入
file = open('南极天猫评估.csv','w')
对于列表中的 i(范围(0,len(昵称))):
file.write(','.join((nickname[i],rated[i],color[i],size[i],ratecontent[i]))+'n')
文件.close()
最终爬虫结果如下:
今天的爬虫部分就介绍到这里。本次分享的目的是如何解决网页信息的异步存储。在后续的分享中,我将对爬取的评论数据进行文本分析,涉及分词、情感分析、词云等。
结尾。
本文经作者授权
原文来源于微信公众号(PPV类数据科学社区):