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爬蟲,抓取淘寶商品評論內容

相關文章
相關標籤/搜索