1. 程式人生 > >Python實例之抓取淘寶商品數據(json型數據)並保存為TXT

Python實例之抓取淘寶商品數據(json型數據)並保存為TXT

sel range ats 表達 隨著 request nic rom .get

本實例實現了抓取淘寶網中以‘python’為關鍵字的搜索結果,經詳細查看數據存儲於html文檔中的js腳本中,數據類型為JSON

通過瀏覽器相關工具發現捧腹網笑話頁面的數據存儲在HTML頁面而非json數據中,因此可以直接使用soup.select()方法來抓取數據,具體實現代碼如下:

import requests
import re
import json
from urllib.parse import urlencode
from bs4 import BeautifulSoup
finalstr = ‘‘
count = 0                   #初始化頁碼對應參數,0為首頁
test = 0 #初始化數據總條數 for j in range(0,100): #共搜索100頁數據 count = 44*j #每跳一頁參數值增加44 data = { q:python, imgfile:‘‘, js:1, stats_click:search_radio_all:1, initiative_id:staobaoz_20170529, ie:
utf8, bcoffset:4, ntoffest:4, p4ppushleft:1,48, s:count } #瀏覽器地址的get參數,只有‘s‘會隨著頁碼改變而改變 url = https://s.taobao.com/search? + urlencode(data) #瀏覽器地址 req = requests.get(url) pattern = re.compile(
g_page_config = (.*?);\n g_srp_loadCss()) #正則表達式匹配數據 result = pattern.search(req.text) # result.group(1) jsres = json.loads(result.group(1)) #匹配後獲得的json數據深度比較大,需要層層剖析 sedata = jsres[mods][ itemlist][data][auctions] #經過剖析後的json數據 for i in range(0,len(sedata)): rt = 標題:+sedata[i][raw_title]+\n finalstr += rt rp = 價格:+sedata[i][view_price]+\n finalstr += rp rn = 賣家:+sedata[i][nick]+\n finalstr += rn rd = 地址:+sedata[i][item_loc]+\n\n finalstr += rd print(當前正在讀取第+str(j+1)+"頁的第"+str(i+1)+條數據...) test += 1 f = open(淘寶搜索python時的商品數據,共+str(test)+條.txt,w,1,UTF-8) #保存數據到TXT f.write(finalstr) print(正在保存。。。) f.close() print(保存完畢!共+str(test)+條數據)

Python實例之抓取淘寶商品數據(json型數據)並保存為TXT