今天閑着沒事,不想像書上介紹的那樣,我相信所有的數據都是有規律可以尋找的,然后去分析了一下淘寶的商品數據的規律和加密方式,用了最簡單的知識去解析了需要的數據。
這個也讓我學到了,解決問題的方法不止一個,我們要常常學會去思考,學會去學習,相信我們爬蟲還是可以拿到我們想要的一切需要的數據。
我也對數據感興趣,就是感覺,世間萬物都是有規律可尋的,就看我們能不能去發現其中的秘密。
當我們去解決一個問題的時候,那一種成就感是別人難以體會的。只有我們去親身體驗才會感到真正的幸福。
所用模塊:
re+requests+json
所用環境:
windows10 + pycharm
實戰分析:
第一步:根據url來在google chrome中分析數據
分析的結果是:數據就是通過json來存儲的
第二步:
得到網頁的源碼
第三步把得到的數據進行解析
第四步:對數據進行解密
第五步:就可以把json的數據拿到並分析得到相應的數據
以下是源碼:
1 import json 2 import re 3 4 import requests 5 6 # 在搜索框中輸入美食得到的數據q=%E7%BE%8E%E9%A3%9F 7 url = 'https://s.taobao.com/search?q=%E7%BE%8E%E9%A3%9F' 8 response = requests.get(url) 9 # print(response.text) 10 11 # 用正則對html源碼進行解析到一個json數據 12 pattern = re.compile('g_page_config =(.*?});', re.S) 13 result = re.search(pattern, response.text) 14 # print(result.group(1)) 15 try: 16 # 發現並不是那么簡單而是加密的數據並是有規律可尋的,以下是加密的幾個數據段 17 json_data = re.sub('(\\\\u003d)|(\\\\u0026)|(\\\\u003c)|(\\\\u003e)', '', result.group(1)) 18 print('數據解密成功') 19 # print(json_data) 20 except Exception as e: 21 print('數據解密失敗,原因是:',e) 22 23 24 # json_dumps = json.dumps(json_data) 25 # print(json_dumps) 26 data_count = 1 27 data = json.loads(json_data) 28 # 分析json的數據並把需要的數據給讀取出來 29 for good in data['mods']['itemlist']['data']['auctions']: 30 print('商店名:{},商品標題:{},\n商品圖片:{},\n商品產地:{},商品價格:{},付款人數:{},\n'.format(good['nick'], good['title'], good['pic_url'], good['item_loc'], good['view_price'],good['view_sales'])) 31 data_count += 1 32 33 print(data_count)