python爬取京東文胸資料(一)
阿新 • • 發佈:2018-11-27
##點選——>要爬取網址
作為一個爬蟲小白解決問題是十分蛋疼的(Φ皿Φ),就這幾行程式碼,我折磨了一下午,然後我發現,學習程式碼最大的難題是學習資源獲取的途徑並不是程式碼本身,只要學,任何人都能學會
**1.**先到達頁面開啟開發者模式(F12),點選商品評論,我們隨便的複製一些字,去原始碼裡搜搜發現沒有這句話,就知道是動態頁面了,該去找json檔案了
**2.**我們進入Network,去filter裡面打comment,一般評論關鍵詞就這個,然後去翻裡面的請求,隨便翻翻就找到了,也不是瞎翻,重點是js請求
**3.**知道了這個是相應的請求了,去headers弄url,去看看怎麼樣
4下面開始搞程式碼
import requests import json headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'} url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv12345&productId=19523497981&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1' res = requests.get(url,headers=headers) jd=json.loads(res.text.lstrip('fetchJSON_comment98vv12345(').rstrip(');')) #上面這行真是讓我蛋疼半天的元首,記住要去掉無關字元 com_list=jd['comments'] for i in com_list: print(i['content'])
心路歷程:我之前爬過幾個動態頁面沒遇到過這種問題,一開始我沒去掉,一直報這種錯
E:\python3\python.exe F:/pycharm/untitled/cpu.py Traceback (most recent call last): File "F:/pycharm/untitled/cpu.py", line 12, in <module> sd = json.loads(res) File "E:\python3\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "E:\python3\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "E:\python3\lib\json\decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我就去百度狂搜,千奇百怪各種回答,我還痴呆的去一個個認真對照,最後我反其道而尋之!看看其它人怎麼爬的,又是一番波折,不少上古級或大神級程式碼,不想看,最後刮半天找到這個解決之道