python抓取网页数据(如何使用Python对天猫的评论数据进行评论(图))

优采云 发布时间: 2022-04-18 06:00

  python抓取网页数据(如何使用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 银行和保险业大数据应用

  

  参

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线