一直想作一個python數據分析的案例,臨近情人節,打算作一個關於岡本安全套商品的數據分析,給廣大的情人送個福利。html
使用軟件:python、mysqlpython
這裏主要分爲3步: mysql
一、數據庫建表web
二、利用爬蟲從天貓爬取評論信息sql
三、將爬取到的信息存入數據庫內數據庫
部分商品有贈品,因此設計了贈品這一字段。安全
目標信息,是天貓岡本旗艦店貨架上的兩款產品,以下圖cookie
import requests import re import pymysql tmpt_url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=41226603273&sellerId=2032870312¤tPage=%d' def get_data(tmpt_url): urllist = [tmpt_url%i for i in range(1,100)] nickname = [] #用戶名稱 auctionSku = [] #商品類型 ratecontent = [] #評論內容 ratedate = [] #評論時間 addcomment = [] #追加評論 addcommenttime = [] #追加評論時間 headers = {"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding": "gzip, deflate, sdch", "accept-language": "zh-CN,zh;q=0.8", "cache-control": "max-age=0", "cookie":"涉及我的隱私,各位能夠從F12,或者審查元素裏面找到cookies", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"} for url in urllist: content = requests.get(url,headers=headers).text nk = re.findall('"displayUserNick":"(.*?)"',content) #findall(正則規則,字符串) 方法可以以列表的形式返回能匹配的字符串 nickname.extend(nk) auctionSku.extend(re.findall('"auctionSku":"(.*?)"',content)) ratecontent.extend(re.findall('"rateContent":"(.*?)"',content)) addcomment.extend(re.findall('"Content":"(.*?)"',content)) addcommenttime.extend(re.findall('"commentTime":"(.*?)"',content)) ratedate.extend(re.findall('"rateDate":"(.*?)"',content)) print("蒐集完成,進行入庫") db = pymysql.connect(host="localhost",user="root",password="",db="test",charset='utf8') cursor = db.cursor() for i in range(0,len(nickname)): # SQL 插入語句 sql = "INSERT INTO sp_okamoto_comment(user_name,product_type, first_comment, comment_date,sort,create_time,modify_time) \ VALUES (%s, %s, %s, %s,1,now(),now())" value = (nickname[i],auctionSku[i],ratecontent[i],ratedate[i]) try: # 執行sql語句 cursor.execute(sql,value) # 執行sql語句 db.commit() except: # 發生錯誤時回滾 db.rollback() # 關閉數據庫鏈接 db.close() get_data(tmpt_url)
此函數用於獲取所需產品的評論相關信息,例如商品類型、用戶名稱、首次評論等,將這些數據分別保存在各個list當中,而後寫入到SQL當中。app
兩款產品一共爬取了2764條評論,這麼少的緣由是,天貓只公開了前100頁的數據。其餘的評論須要經過篩選查詢出來。函數
若是要繼續爬取其餘產品的評論,只須要更改 tmpt_url 便可。
本文只用做學習交流,不做商業用途,若有侵權請告知刪除。
轉發引用請評論留言,謝謝。