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

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

思路

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

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

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

开始写代码

具体过程就赘述了,新建一个函数,接受店铺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(‘,‘)

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

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

最后

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

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

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

时间: 2024-10-07 04:48:14

Python爬虫,抓取淘宝商品评论内容的相关文章

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

Python爬虫抓取网页图片

本文通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地. 下面就看看如何使用python来实现这样一个功能. # -*- coding: utf-8 -*- import urllib import re import time import os #显示下载进度 def schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 ''' per = 100.0 * a * b / c if per > 100 : per =

python爬虫抓取站长之家IP库,仅供练习用!

python爬虫抓取站长之家IP库,单线程的,仅供练习,IP库数据有43亿条,如果按此种方法抓取至少得数年,所以谨以此作为练手,新手代码很糙,请大家见谅. #!/usr/bin/python #coding=UTF-8 import urllib2 import re import os import csv import codecs user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-

python 爬虫抓取心得分享

/** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/112157956201311821444664/ **/    0x1.urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'h

Python实例之抓取淘宝商品数据(json型数据)并保存为TXT

本实例实现了抓取淘宝网中以'python'为关键字的搜索结果,经详细查看数据存储于html文档中的js脚本中,数据类型为JSON 通过浏览器相关工具发现捧腹网笑话页面的数据存储在HTML页面而非json数据中,因此可以直接使用soup.select()方法来抓取数据,具体实现代码如下: import requests import re import json from urllib.parse import urlencode from bs4 import BeautifulSoup fin

python爬虫抓取哈尔滨天气信息

python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip install requests:pip install BeautifulSoup4) 代码:(亲测可以正确执行) 1 # coding:utf-8 2 """ 3 总结一下,从网页上抓取内容大致分3步: 4 1.模拟浏览器访问,获取html源代码 5 2.通过正则匹配,获取指定

Python爬虫抓取技术的门道

web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单易学的html.css技术使得web成为了互联网领域里最为流行和成熟的信息传播媒介:但如今作为商业化软件,web这个平台上的内容信息的版权却毫无保证,因为相比软件客户端而言,你的网页中的内容可以被很低成本.很低的技术门槛实现出的一些抓取程序获取到,这也就是这一系列文章将要探讨的话题-- 网络爬虫 . 有很多人认为web应当始终遵循开放的精神,呈现在页面

【Python】抓取淘宝数据库月报,发送邮件,本地存档,保存元信息

用途 定期抓取淘宝数据库月报 发送邮件,保存到本地,最好是git中 发送元数据到mysql中,后期可以做成接口集成到运维平台中,便于查询 使用方式 # 下载(必须) cd ~ && git clone https://github.com/naughtyGitCat/spider_taobao_mysql.git # 修改配置(必须) vim config.py # 安装crontab(可选) "0 10 8 * * source ~/.bashrc && pyt

爬虫抓取百度贴吧帖子内容

上篇文章已经介绍了抓取糗事百科的段子,这篇文章来抓取百度贴吧帖子内容,涉及到urllib,urllib2,re等模块. 代码实现功能: 1.获取某一个帖子的标题 2.获取帖子回复的所有页数,以及每一页的内容 3.可以只获取楼主的回复(使用数字1声明),或者所有回复(使用数字0声明) 直接使用oop编程的方式编写代码: 代码如下: #!/usr/bin/env python #coding:utf8 import urllib import urllib2 import re #处理页面标签类 c