Python爬虫,抓取淘宝商品评论内容
2018-06-24 17:08
736 查看
作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫!
思路
我们就拿“德州扒鸡”做为参考目标吧~!如果想抓其他商品的话,自行更换目标即可!打开淘宝,搜索目标,随便点击一个商品进入,在点击累计评论,打开F12开发者工具——网络,先清除现有的所有内容,然后点击下一页评论,在弹出的内容中查找文件中开头为list_detail_rate.htm的html类型,如下图所示
这个html中就含有我们需要的内容,左键点击然后选择响应,就可以看到具体响应内容了!
这里面是一大串包含我们需要的内容在内的源代码,如果大家有兴趣可以提取内容做成json数据,而我们这里只需要评论数据,所以,用正则匹配评论部分就可以了!
加入try是因为代码一直在抽风的跳出index错误,后续还可以改进!
作为一个爬虫爱好者,必然要加深抓取的广度的,试着将整个页面的店铺ID抓取出来!这次简单,直接抓到json数据,然后用正则匹配,放回列表,因为时间有限,没有研究出url翻页的依据,就只抓取了一页!
然后开始写主函数,保存到文档!运行结果如下
emmm,看评论是可以入手的!哈哈!
最后
想说几点,一个是自己写个小爬虫玩玩可以,做分析也行,但是务必切记不要外传扩散,很容易进坑!二是淘宝的反爬其实也不是很难,比如上面的爬虫,并没有做反爬措施,大家可以拿这个来练练手,记得加入sleep就可以,不要给对方服务器造成压力为最好!
代码写的不好,各路高手请见谅!欢迎大家来一起交流、学习!
思路
我们就拿“德州扒鸡”做为参考目标吧~!如果想抓其他商品的话,自行更换目标即可!打开淘宝,搜索目标,随便点击一个商品进入,在点击累计评论,打开F12开发者工具——网络,先清除现有的所有内容,然后点击下一页评论,在弹出的内容中查找文件中开头为list_detail_rate.htm的html类型,如下图所示
这个html中就含有我们需要的内容,左键点击然后选择响应,就可以看到具体响应内容了!
这里面是一大串包含我们需要的内容在内的源代码,如果大家有兴趣可以提取内容做成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¤tPage={}'.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(',')
然后开始写主函数,保存到文档!运行结果如下
emmm,看评论是可以入手的!哈哈!
最后
想说几点,一个是自己写个小爬虫玩玩可以,做分析也行,但是务必切记不要外传扩散,很容易进坑!二是淘宝的反爬其实也不是很难,比如上面的爬虫,并没有做反爬措施,大家可以拿这个来练练手,记得加入sleep就可以,不要给对方服务器造成压力为最好!
代码写的不好,各路高手请见谅!欢迎大家来一起交流、学习!
相关文章推荐
- 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第二篇)
- python淘宝爬虫基于requests抓取淘宝商品数据
- [置顶] [爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)
- python爬虫selenium+firefox抓取京东商品评论
- python淘宝爬虫基于requests抓取淘宝商品数据
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续二)
- python模拟浏览器登录淘宝抓取内容
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- 爬虫学习笔记_京东商品内容、评论
- Python爬虫(入门+进阶)学习笔记 1-8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝商品)
- python爬取ajax动态生成的数据 以抓取淘宝评论为例子
- 带你写爬虫(python)第二篇----抓取网易云音乐下面的评论(API方式)
- [置顶] 【python 淘宝爬虫】淘宝信誉分抓取
- 评论抓取:Python爬取微信在APPStore上的评论内容及星级
- python爬虫(6)——获取天猫商品评论信息
- Python爬虫入门-fiddler抓取手机新闻评论
- Python 简易网络爬虫的编写——抓取任意页面数目百度百科内容
- Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
- python爬虫之:淘宝商品搜索爬虫(收集商品信息/下载详情图)
- [置顶] 【python 淘宝爬虫】python 淘宝店铺名称,旺旺,销售量 抓取