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

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

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

思路python

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

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

这个html中就含有咱们须要的内容,左键点击而后选择响应,就能够看到具体响应内容了!json

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错误,后续还能够改进!app

做为一个爬虫爱好者,必然要加深抓取的广度的,试着将整个页面的店铺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爬虫,抓取淘宝商品评论内容

相关文章
相关标签/搜索