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

匿名 (未验证) 提交于 2019-12-02 22:54:36

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

˼·

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

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

开始写代码

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

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

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

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

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

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

最后

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

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

原文:https://www.cnblogs.com/qun542110741/p/9221040.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!