什麼是數據提取?html
簡單的來講,數據提取就是從響應中獲取咱們想要的數據的過程python
非結構化的數據:html等 | 結構化數據:json,xml等 |
處理方法:正則表達式、xpath | 處理方法:轉化爲python數據類型 |
因爲把json數據轉化爲python內建數據類型很簡單,因此爬蟲中,若是咱們可以找到返回json數據的URL,就會盡可能使用這種URL正則表達式
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。chrome
適用於進行數據交互的場景,好比網站前臺與後臺之間的數據交互。json
那麼問題來了:哪裏能找到返回json的url呢?api
一、使用chrome切換到手機頁面app
二、抓包手機app的軟件網站
具備 read() 或者 write() 方法的對象就是類文件對象 f = open(「a.txt」,」r」) f就是類文件對象url
url = "https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?start=0&count=18&loc_id=108288" html_str = parse_url(url) # json.loads把json字符串轉化爲python類型 ret1 = json.loads(html_str) # pprint(ret1) # print(type(ret1)) # json.dumps可以把python類型轉化爲json字符串 with open("douban.json","w",encoding="utf-8") as f: f.write(json.dumps(ret1,ensure_ascii=False,indent=4)) # f.write(str(ret1)) # with open("douban.json","r",encoding="utf-8") as f: # ret2 = f.read() # ret3 = json.loads(ret2) # print(ret3) # print(type(ret3)) # 使用json。load提取類文件對象中的數據 with open("douban.json","r",encoding="utf-8") as f: ret4 = json.load(f) print(ret4) print(type(ret4)) #json.dump可以把python類型放入類文件對象中 with open("douban1.json","w",encoding="utf-8") as f: json.dump(ret1,f,ensure_ascii=False,indent=2)
Json在數據交換中起到了一個載體的做用,承載着相互傳遞的數據spa