python爬虫入门——爬取淘宝商品评论信息
python爬蟲入門——爬取淘寶商品評論信息
- 關于爬蟲
- 解決難點
- 代碼部分:
關于爬蟲
從接觸爬蟲以來,一直都認為爬蟲是一個很簡單的東西,至從寫了一個從虎撲論壇下載圖片的簡單爬蟲后就一直沒有進行研究。昨天閑來無事就學習爬蟲淘寶商品信息結果發現有些困難,就想發個帖子,至少讓我走過的彎路不讓別人走吧
解決難點
在編寫過程中遇到了幾個難點,如果覺得遇到問題相同可以參考,不同就不浪費大家時間了。
1.和爬取虎撲論壇圖片不同,爬取圖片十分簡單,只要在界面中就可以直接獲取到圖片下載的地址,而淘寶商品評論不同,是通過Ajax(好像是,后續有時間我會調查清楚,重新編輯)請求后得到的,我理解就是這個評論需要你點一下,而不是直接肉眼就能看到
2.訪問淘寶商鋪連接,十分惡心。一直返問的是一個登錄連接,而不是我想要的html內容,加上header,或者用webdriver都不好用,后來才想到可能是我的header里沒有賬號密碼信息,后來添加上cookie,才搞定
3.我本意是想寫到CSV文件中,萬一以后可以用到就不需要再爬取了,結果商品評論中會有?這種可愛的表情,寫到時候就一點不可愛,導致一直報 ‘UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f604’ in position 12: illegal multibyte sequence’,后來明白原來是編碼格式問題,調查后對編碼格式也進一步了解
4.在測試過程中,由于一直調試會一直對頁面發送請求,請求次數過多過頻繁,淘寶就會彈出一個拖拽驗證碼,我又不想入新坑,就導致我調試一會休息一會,效率低下。
5.廢話不說,還是直接代碼吧,注釋很多,不理解的可以私下探討
代碼部分:
#爬取淘寶商品信息,真的惡心,搞了一天 import requests import simplejson import json import csv import timebase_url ='https://rate.tmall.com/list_detail_rate.htm?itemId=38975978198&spuId=279689783&sellerId=92889104&order=3&callback=jsonp698' header = {'Connection': 'keep-alive','Cookie':此處寫你自己瀏覽器的cookie'}for i in range(1,20,1):url = base_url + '¤tPage=%s'% str(i)# 將響應內容的文本取出tb_req = requests.get(url, headers=header).text[11:-1]#print(tb_req)#將str格式的文本格式化為字典print(tb_req)tb_dict = simplejson.loads(tb_req)#編碼: 將字典內容轉化為json格式對象tb_json = json.dumps(tb_dict, indent=2) #indent參數為縮緊,這樣打印出來是樹形json結構,方便直觀#解碼: 將json格式字符串轉化為python對象review_j = json.loads(tb_json)for p in range(0, 19, 1):with open(r'./tao_data.csv','a',encoding = 'gb18030',newline='') as csvfile: #encoding = 'gb18030' 解決表情寫入csv報錯,但寫入CSV后會別成???不影響觀看就無視掉了writer = csv.writer(csvfile)output = [review_j["rateDetail"]["rateList"][p]['rateContent'].encode('utf-8').decode('utf-8')]writer.writerow(output)time.sleep(1) print('Done!')總結
以上是生活随笔為你收集整理的python爬虫入门——爬取淘宝商品评论信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue(h5)打包apk
- 下一篇: Python 提取数据库(Postgre