文档章节

Python爬虫,抓取淘宝商品评论内容

python玩家
 python玩家
发布于 06/24 17:08
字数 1017
阅读 12
收藏 5
点赞 0
评论 0

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫!

Python爬虫,抓取淘宝商品评论内容

思路

我们就拿“德州扒鸡”做为参考目标吧~!如果想抓其他商品的话,自行更换目标即可!打开淘宝,搜索目标,随便点击一个商品进入,在点击累计评论,打开F12开发者工具——网络,先清除现有的所有内容,然后点击下一页评论,在弹出的内容中查找文件中开头为list_detail_rate.htm的html类型,如下图所示

Python爬虫,抓取淘宝商品评论内容

这个html中就含有我们需要的内容,左键点击然后选择响应,就可以看到具体响应内容了!

Python爬虫,抓取淘宝商品评论内容

这里面是一大串包含我们需要的内容在内的源代码,如果大家有兴趣可以提取内容做成json数据,而我们这里只需要评论数据,所以,用正则匹配评论部分就可以了!

开始写代码

具体过程就赘述了,新建一个函数,接受店铺ID(唯一)作为参数,做一个无限循环来翻页,并以评论时间为判断是否重复,如果重复则跳出循环(return可以直接跳出循环),整个函数部分代码如下

# -*- coding=utf-8 -*-
#qq群:542110741

import requests
import re
import time

def get_comment(itemid):
	i = 1#开始页码
	d = []#构建一个列表用于判断是否继续循环
	lis = []#放置抓取到的内容
	while i:
		#构建循环用的url
		url = 'https://rate.tmall.com/list_detail_rate.htm?itemId={}&order=3&sellerId=1914459560&currentPage={}'.format(itemid,str(i))
		html = requests.get(url).text#获取相关内容的源代码
		pl = re.findall(r'"rateContent":"(.*?)","rateDate"',html)#评论抓取
		dat = re.findall(r'"rateDate":"(.*?)","reply"',html)#评论时间抓取
		if dat == d or pl ==[]:#判断是否重复或者是否存在评论
			print('==============================')
			return lis #跳出循环并返回值
		else:
			try:
				d = dat#没有重复则将评论时间赋值给d,用于下次循环判断
			except IndexError as e:
				continue#出现该错误则跳出循环,进行下一次
		print("第%d页评论"%i,pl)#打印评论内容
		lis.append(pl)
		i += 1
		time.sleep(2)#访问间隔

加入try是因为代码一直在抽风的跳出index错误,后续还可以改进!

作为一个爬虫爱好者,必然要加深抓取的广度的,试着将整个页面的店铺ID抓取出来!这次简单,直接抓到json数据,然后用正则匹配,放回列表,因为时间有限,没有研究出url翻页的依据,就只抓取了一页!

def get_id(kw='德州扒鸡'):
	'''
	只抓了首页44家店铺的,没有抓后面页面,后续需改进
	'''
	url = 'https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&' \
		  '_ksTS=1529811793535_1018&callback=jsonp1019&q={}&imgfile=&js=1&' \
		  'stats_click=search_radio_all:1&initiative_id=staobaoz_20180624&' \
		  'ie=utf8&bcoffset=4&p4ppushleft=1,48'.format(kw)
	html = requests.get(url).text
	id_list = re.findall(r',"auctionNids":\[(.*?)\],"ifDoufuAuction"',html,re.S)[0]
	return id_list.replace('"','').split(',')

然后开始写主函数,保存到文档!运行结果如下

Python爬虫,抓取淘宝商品评论内容

Python爬虫,抓取淘宝商品评论内容

emmm,看评论是可以入手的!哈哈!

Python爬虫,抓取淘宝商品评论内容

最后

想说几点,一个是自己写个小爬虫玩玩可以,做分析也行,但是务必切记不要外传扩散,很容易进坑!二是淘宝的反爬其实也不是很难,比如上面的爬虫,并没有做反爬措施,大家可以拿这个来练练手,记得加入sleep就可以,不要给对方服务器造成压力为最好!

代码写的不好,各路高手请见谅!欢迎大家来一起交流、学习!

Python爬虫,抓取淘宝商品评论内容

© 著作权归作者所有

共有 人打赏支持
python玩家
粉丝 6
博文 25
码字总数 22663
作品 0
太原
程序员
5.2 高富帅python-人工智能时代

小奈:其实你们写的代码好像有不同派系的? 大仁:你是说编程语言?我来介绍下吧,我们来看下GitHub(程序员同城交友、代码协作平台)的数据,看下各种编程语言 Pull Requst的数据, Javascr...

产品经理的技术课堂
05/11
0
0
一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者
04/25
0
0
Python3爬虫视频学习教程

大家好哈,现在呢静觅博客已经两年多啦,可能大家过来更多看到的是爬虫方面的博文,首先非常感谢大家的支持,希望我的博文对大家有帮助! 最近,主要的任务就是开发性感美女图片大全,使用p...

yangjiyue0520
2017/11/18
0
0
Python异步加载爬虫,护士私密照源源不断,Ajax抓取速度惊人!

利用aiohttp这个库来进行异步协程提速! 如果Python爬虫不仅在代码编写上展现速度,而且在爬取过程中表现出优越感,最好的就是去下载图片吧,而下载图片最好的代表当然是......我就不多说了。...

Python新世界
昨天
0
0
Python爬虫代码:淘宝、豆瓣、知乎、微博、QQ、简书等

[0] 一份Python爬虫电子书 https://zhuanlan.zhihu.com/p/28865834 [1] 爬取网易云音乐所有歌曲的评论 https://github.com/RitterHou/music-163 [2] python爬虫代理IP池(proxy pool) https:......

大数据之路
2012/12/31
0
0
手把手教你写网络爬虫(1):网易云音乐歌单

原文出处:拓海 大家好,《手把手教你写网络爬虫》连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意。本文由浅入深的把爬虫技术和...

拓海
04/27
0
0
Python 编写知乎爬虫实践

1、爬虫的基本流程 网络爬虫的基本工作流程如下: 首先选取一部分精心挑选的种子 URL 将种子 URL 加入任务队列 从待抓取 URL 队列中取出待抓取的 URL,解析 DNS,并且得到主机的 ip,并将 UR...

大数据之路
2012/06/16
0
0
2个月精通Python爬虫——3大爬虫框架+6场实战+分布式爬虫,包教包会

阿里云大学在线工作坊上线,原理精讲+实操演练,让你真正掌握云计算、大数据技能。 在第一批上线的课程中,有一个Python爬虫的课程,畅销书《精通Python网络爬虫》作者韦玮,带你两个月从入门...

云木西
06/27
0
0
33款可用来抓数据的开源爬虫软件工具

要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫...

Airship
2015/11/09
0
1
Python--(爬虫与数据库的连接)

(每一天都是属于你的!) Python对于初学后巩固基础的人还是更多的来接触python爬虫会更好一些,在Python爬虫中包含很多基础部分知识,并且在项目中会提升你的成功感!加油! 我在工作之余时...

jamesjoshuasss
06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部