色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python爬蟲JSON及JSONPath運行原理詳解

瀏覽:2日期:2022-07-22 18:46:12

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。適用于進行數據交互的場景,比如網站前臺與后臺之間的數據交互。

JsonPath 是一種信息抽取類庫,是從JSON文檔中抽取指定信息的工具,提供多種語言實現版本,包括:Javascript, Python, PHP 和 Java。

JsonPath 對于 JSON 來說,相當于 XPATH 對于 XML。

JsonPath與XPath語法對比:

Json結構清晰,可讀性高,復雜度低,非常容易匹配,下表中對應了XPath的用法。

Python爬蟲JSON及JSONPath運行原理詳解

相關推薦:《Python相關教程》

利用JSONPath爬取拉勾網上所有的城市

#!/usr/bin/env python# -*- coding:utf-8 -*-import urllib2# json解析庫,對應到lxmlimport json# json的解析語法,對應到xpathimport jsonpathurl = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36’}request = urllib2.Request(url, headers = headers)response = urllib2.urlopen(request)# 取出json文件里的內容,返回的格式是字符串html = response.read()# 把json形式的字符串轉換成python形式的Unicode字符串unicodestr = json.loads(html)# Python形式的列表city_list = jsonpath.jsonpath(unicodestr, '$..name')#for item in city_list:# print item# dumps()默認中文為ascii編碼格式,ensure_ascii默認為Ture# 禁用ascii編碼格式,返回的Unicode字符串,方便使用array = json.dumps(city_list, ensure_ascii=False)#json.dumps(city_list)#array = json.dumps(city_list)with open('lagoucity.json', 'w') as f: f.write(array.encode('utf-8'))

結果:

Python爬蟲JSON及JSONPath運行原理詳解

糗事百科爬取

利用XPATH的模糊查詢

獲取每個帖子里的內容

保存到 json 文件內

#!/usr/bin/env python# -*- coding:utf-8 -*-import urllib2import jsonfrom lxml import etreeurl = 'http://www.qiushibaike.com/8hr/page/2/'headers = {’User-Agent’:’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36’}request = urllib2.Request(url, headers = headers)html = urllib2.urlopen(request).read()# 響應返回的是字符串,解析為HTML DOM模式 text = etree.HTML(html)text = etree.HTML(html)# 返回所有段子的結點位置,contains()模糊查詢方法,第一個參數是要匹配的標簽,第二個參數是標簽名部分內容node_list = text.xpath(’//div[contains(@id, 'qiushi_tag')]’)items ={}for node in node_list: # xpath返回的列表,這個列表就這一個參數,用索引方式取出來,用戶名 username = node.xpath(’./div/a/@title’)[0] # 取出標簽下的內容,段子內容 content = node.xpath(’.//div[@class='content']/span’)[0].text # 取出標簽里包含的內容,點贊 zan = node.xpath(’.//i’)[0].text # 評論 comments = node.xpath(’.//i’)[1].text items = { 'username' : username, 'content' : content, 'zan' : zan, 'comments' : comments } with open('qiushi.json', 'a') as f: f.write(json.dumps(items, ensure_ascii=False).encode('utf-8') + '')

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产91精品一区 | 亚洲三级免费 | 免费a级毛片视频 | 99久久精品久久久久久婷婷 | 久久91综合国产91久久精品 | 91一区 | 成人免费精品视频 | 亚洲欧美日韩国产精品久久 | 久久高清免费 | 国产偷国产偷亚洲高清午夜 | 99热免费 | 91精品成人免费国产 | 色综合a怡红院怡红院首页 色综合精品久久久久久久 色综合九九 | 亚洲欧美日韩精品久久亚洲区 | 久久91综合国产91久久精品 | 亚洲悠悠色综合中文字幕 | 69视频成人 | 天堂8中文在线最新版在线 天堂8资源8在线 | 美国毛片一级视频在线aa | 免费播放欧美毛片 | 免费高清在线爱做视频 | 欧美日韩亚洲综合在线一区二区 | 免费看片亚洲 | 亚洲精品手机在线观看 | 免费国产午夜高清在线视频 | 久久91视频 | 成人国产精品999视频 | 手机看片1024精品日韩 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 欧美精品a毛片免费观看 | 天堂va欧美ⅴa亚洲va一国产 | www黄网| 三级免费网站 | 久久精品在线免费观看 | 国产高清日韩 | 玖玖香蕉视频 | 精品国产午夜肉伦伦影院 | 99久久99久久精品免费看子伦 | 久久久久一级片 | 免费欧洲毛片a级视频 | 怡红院亚洲红怡院天堂麻豆 |