亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python爬蟲(chóng)將js轉(zhuǎn)化成json實(shí)現(xiàn)示例

 更新時(shí)間:2023年05月31日 10:06:20   作者:ponponon  
這篇文章主要為大家介紹了python爬蟲(chóng)將js轉(zhuǎn)化成json實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

有一個(gè)優(yōu)秀的庫(kù)可以使用————demjson

示范鏈接

http://fcd.5173.com/commondat...

請(qǐng)求上面鏈接,會(huì)得到如下圖的一個(gè)js文件

我們需要把這個(gè)js文件轉(zhuǎn)成為dict,方便提取其中需要的字段(這在爬蟲(chóng)任務(wù)中非常常見(jiàn))

失敗的方法

傳統(tǒng)方法

通常轉(zhuǎn)js文件為dict的過(guò)程:

1.先通過(guò)切片掐頭去尾,去掉頭部的 “callarea(” 和尾部的 “)” 。

2.再次導(dǎo)入json這個(gè)庫(kù),使用loads,json.loads(resposne.text[9:-1]),實(shí)現(xiàn)json轉(zhuǎn)dict。

但是,這個(gè)方法在這里行不通。

import requests
import json
url = 'http://fcd.5173.com/commondata/Category.aspx?type=area&cache=&id=20c8bbc1b9794fc98bd96859624d4769&jsoncallback=callarea'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',
}
resposne = requests.get(url, headers=headers)
print(json.loads(resposne.text[9:-1]))

錯(cuò)誤原因

js文件并不一定是json的超集,這此處的js文件key不包含雙引號(hào),value中的內(nèi)容是單引號(hào)。

上訴方法行得通的前提是這個(gè)js需要時(shí)json的超集,key和value都由雙引號(hào)包圍。

天無(wú)絕人之路

通過(guò)demjson可以一步到位

import requests
import demjson
url = 'http://fcd.5173.com/commondata/Category.aspx?type=area&cache=&id=20c8bbc1b9794fc98bd96859624d4769&jsoncallback=callarea'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',
}
resposne = requests.get(url, headers=headers)
for item in demjson.decode(resposne.text[9:-1]):
    id = item.get('id')
    name = item.get('name')
    print(id, name)

得到如下結(jié)果

寫(xiě)代碼千萬(wàn)不要睡著了

以上就是python爬蟲(chóng)將js轉(zhuǎn)化成json實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于python將js轉(zhuǎn)化成json的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • keras實(shí)現(xiàn)VGG16方式(預(yù)測(cè)一張圖片)

    keras實(shí)現(xiàn)VGG16方式(預(yù)測(cè)一張圖片)

    這篇文章主要介紹了keras實(shí)現(xiàn)VGG16方式(預(yù)測(cè)一張圖片),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python中的getter與setter及deleter使用示例講解

    Python中的getter與setter及deleter使用示例講解

    這篇文章主要介紹了Python中的getter與setter及deleter使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Python爬蟲(chóng)獲取數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中的超詳細(xì)教程(一看就會(huì))

    Python爬蟲(chóng)獲取數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中的超詳細(xì)教程(一看就會(huì))

    使用爬蟲(chóng)爬數(shù)據(jù),總要涉及到數(shù)據(jù)持久化,也就是數(shù)據(jù)存儲(chǔ)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Python爬蟲(chóng)獲取數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中的超詳細(xì)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python保留指定位數(shù)小數(shù)的5種方法總結(jié)

    Python保留指定位數(shù)小數(shù)的5種方法總結(jié)

    很多小伙伴在學(xué)習(xí)python的時(shí)候可能會(huì)遇到對(duì)數(shù)據(jù)進(jìn)行格式化輸出的需求,其中最常見(jiàn)的需求為保留幾位小數(shù),這篇文章主要給大家介紹了關(guān)于Python保留指定位數(shù)小數(shù)的5種方法,需要的朋友可以參考下
    2023-08-08
  • Python的Django框架中自定義模版標(biāo)簽的示例

    Python的Django框架中自定義模版標(biāo)簽的示例

    這篇文章主要介紹了Python的Django框架中自定義模版標(biāo)簽的示例,標(biāo)簽的用處比過(guò)濾器更多,需要的朋友可以參考下
    2015-07-07
  • python的特殊語(yǔ)法和常用模塊示例詳解

    python的特殊語(yǔ)法和常用模塊示例詳解

    Python確實(shí)支持函數(shù)式編程,并提供了一些內(nèi)置的高階函數(shù),這些函數(shù)可以接受其他函數(shù)作為參數(shù),從而使代碼更加簡(jiǎn)潔和功能強(qiáng)大,這篇文章主要介紹了python的特殊語(yǔ)法和常用模塊詳解,需要的朋友可以參考下
    2024-08-08
  • Python Numpy計(jì)算各類(lèi)距離的方法

    Python Numpy計(jì)算各類(lèi)距離的方法

    這篇文章主要介紹了Python Numpy計(jì)算各類(lèi)距離的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python利用matplotlib實(shí)現(xiàn)制作動(dòng)態(tài)條形圖

    Python利用matplotlib實(shí)現(xiàn)制作動(dòng)態(tài)條形圖

    說(shuō)到用 Python 制作動(dòng)態(tài)圖,首先想到的肯定是一些直接拿來(lái)就用的庫(kù),雖然我沒(méi)做過(guò),但是我相信一定有且不止一個(gè),搜了一圈后發(fā)現(xiàn)有個(gè)bar chart race庫(kù)看起來(lái)不錯(cuò),感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • Python利用3D引擎寫(xiě)一個(gè)Pong游戲

    Python利用3D引擎寫(xiě)一個(gè)Pong游戲

    之前,我們嘗試過(guò)用pygame做了一個(gè)2D的Pong游戲。本文將利用強(qiáng)大的3D引擎Ursina制作一個(gè)3D版的Pong游戲。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-01-01
  • Python報(bào)錯(cuò)TypeError: object of type ‘generator‘ has no len ()的解決方法

    Python報(bào)錯(cuò)TypeError: object of type ‘gener

    在Python開(kāi)發(fā)的復(fù)雜世界中,報(bào)錯(cuò)信息就像神秘的謎題,困擾著開(kāi)發(fā)者和環(huán)境配置者,其中,TypeError: object of type ‘generator’ has no len()這個(gè)報(bào)錯(cuò),常常在不經(jīng)意間打亂我們的開(kāi)發(fā)節(jié)奏,本文讓我們一起深入探究這個(gè)報(bào)錯(cuò)問(wèn)題,為Python開(kāi)發(fā)之路掃除障礙
    2024-10-10

最新評(píng)論