python抓取网页数据(如何使用Python对天猫的评论数据进行评论(图))
优采云 发布时间: 2022-04-18 06:00python抓取网页数据(如何使用Python对天猫的评论数据进行评论(图))
天气越来越冷,觉得应该给自己添点暖和的衣服,于是想到了天猫,搜了一下,感觉南极人的保暖内衣还是不错的。这么多衣服怎么选?我通常选择按销售额排序。毕竟销量也能反映产品的热度和口碑状况,所以来到了这个页面%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(';spuId=345965243&sellerId=2106525799&order=1¤tPage=%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()
最终爬虫结果如下:
今天的爬虫部分就介绍到这里。本次分享的目的是如何解决网页信息的异步存储。在后续的分享中,我将对爬取的评论数据进行文本分析,涉及分词、情感分析、词云等。
温馨的提示:
天山智能是中国商业智能BI、数据分析、大数据领域最大的社区。欢迎您访问天山学院,有更多免费的行业专家数据库、商业智能BI、数据分析、大数据、数据挖掘视频和好文章分享。.
12 月 29 日 8:30 pm Oracle Oracle BI 银行和保险业大数据应用
参