真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python爬蟲中JSON和JSONPath是什么

這篇文章將為大家詳細(xì)講解有關(guān)python爬蟲中JSON和JSONPath是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

“專業(yè)、務(wù)實、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、軟件開發(fā)、設(shè)計服務(wù)業(yè)務(wù)。我們始終堅持以客戶需求為導(dǎo)向,結(jié)合用戶體驗與視覺傳達(dá),提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!

JSON和JSONPath

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

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

JsonPath 對于 JSON 來說,相當(dāng)于 XPATH 對于 XML。

JsonPath與XPath語法對比:

Json結(jié)構(gòu)清晰,可讀性高,復(fù)雜度低,非常容易匹配,下表中對應(yīng)了XPath的用法。

python爬蟲中JSON和JSONPath是什么

利用JSONPath爬取拉勾網(wǎng)上所有的城市

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# json解析庫,對應(yīng)到lxml
import json
# json的解析語法,對應(yīng)到xpath
import jsonpath
url = "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文件里的內(nèi)容,返回的格式是字符串
html =  response.read()
# 把json形式的字符串轉(zhuǎn)換成python形式的Unicode字符串
unicodestr = json.loads(html)
# Python形式的列表
city_list = jsonpath.jsonpath(unicodestr, "$..name")
#for item in city_list:
#    print item
# dumps()默認(rèn)中文為ascii編碼格式,ensure_ascii默認(rèn)為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"))

結(jié)果:

python爬蟲中JSON和JSONPath是什么

糗事百科爬取

利用XPATH的模糊查詢

獲取每個帖子里的內(nèi)容

保存到 json 文件內(nèi)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import json
from lxml import etree
url = "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()
# 響應(yīng)返回的是字符串,解析為HTML DOM模式 text = etree.HTML(html)
text = etree.HTML(html)
# 返回所有段子的結(jié)點位置,contains()模糊查詢方法,第一個參數(shù)是要匹配的標(biāo)簽,第二個參數(shù)是標(biāo)簽名部分內(nèi)容
node_list = text.xpath('//div[contains(@id, "qiushi_tag")]')
items ={}
for node in node_list:
    # xpath返回的列表,這個列表就這一個參數(shù),用索引方式取出來,用戶名
    username = node.xpath('./div/a/@title')[0]
    # 取出標(biāo)簽下的內(nèi)容,段子內(nèi)容
    content = node.xpath('.//div[@class="content"]/span')[0].text
    # 取出標(biāo)簽里包含的內(nèi)容,點贊
    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") + "\n")

關(guān)于python爬蟲中JSON和JSONPath是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


新聞標(biāo)題:python爬蟲中JSON和JSONPath是什么
本文URL:http://weahome.cn/article/gcegos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部