您能从漂亮的汤对象中获取关键值吗

时间:2018-09-06 15:31:12

标签: python string web-scraping beautifulsoup

是否有一种方法可以从beautifulsoup对象中获取键值,特别是从<script>标签中获取键值?

到目前为止,这是我的代码

import requests
from bs4 import BeautifulSoup as soup
url2 = 'https://www.discogs.com/Chase-Ennea/release/12470586'
r2 = requests.get(url2)
album_page = soup(r2.text, "html.parser")

embed_holder = album_page.findAll("script", {"id":"dsdata"})
print(embed_holder)

运行此代码时,我得到以下输出。我已将其缩短以方便阅读。

{"locale": "en", "apiServer": "https://api.discogs.com", "videos/macro:playlist"
: [{"description": "Cronus (Saturn) - CHASE (Ennea).1972   .P\u0027Dhede Ciptama
s.wmv", "title": "Cronus (Saturn) - CHASE (Ennea).1972   .P\u0027Dhede Ciptamas.
wmv", "thumbnail": "https://i.ytimg.com/vi/ST7EwGSyiSk/default.jpg", "file": "ht
tps://www.youtube.com/watch?v=ST7EwGSyiSk", "duration": 292, "id": "ST7EwGSyiSk"
}, {"description": "CHASE - Cronus/Zeus/Poseidon/Aphrodite/Hades", "title": "CHA
SE - Cronus/Zeus/Poseidon/Aphrodite/Hades", "thumbnail": "https://i.ytimg.com/vi
/K-YyMpHtOpA/default.jpg", "file": "https://www.youtube.com/watch?v=K-YyMpHtOpA"
, "duration": 1271, "id": "K-YyMpHtOpA"}, {"description": "Chase - It won\u0027t
 be long", "title": "Chase - It won\u0027t be long", "thumbnail": "https://i.yti
mg.com/vi/03PtVthpq_E/default.jpg", "file": "https://www.youtube.com/watch?v=03P
tVthpq_E", "duration": 191, "id": "03PtVthpq_E"}, {"description": "Swanee River
- CHASE (Ennea 1972)........P\u0027Dhede Ciptamas.wmv", "title": "Swanee River -
 CHASE (Ennea 1972)........P\u0027Dhede Ciptamas.wmv", "thumbnail": "https://i.y
timg.com/vi/lBdW0t6QJ10/default.jpg", "file": "https://www.youtube.com/watch?v=l
BdW0t6QJ10", "duration": 194, "id": "lBdW0t6QJ10"}, {"description": "I Can Feel
It  - CHASE (Ennea)............ P\u0027DHEDE CIPTAMAS.wmv", "title": "I Can Feel
 It  - CHASE (Ennea)............ P\u0027DHEDE CIPTAMAS.wmv", "thumbnail": "https
://i.ytimg.com/vi/FJHoWVCKhZQ/default.jpg", "file": "https://www.youtube.com/wat
ch?v=FJHoWVCKhZQ", "duration": 177, "id": "FJHoWVCKhZQ"}, {"description": "CHASE
 - aphrodite part I, part II, hades", "title": "CHASE - aphrodite part I, part I
I, hades", "thumbnail": "https://i.ytimg.com/vi/4bojw1BqxlQ/default.jpg", "file"
: "https://www.youtube.com/watch?v=4bojw1BqxlQ", "duration": 554, "id": "4bojw1B
qxlQ"}], "enableGaDebuggingVerbose": false, "assetBasePath": "dst/", "release/vi
ew:releaseId": 12470586, "sentryKey": "https://be657047a7784ed6aeda4beb297c0a86@
sentry.io/51758", "ga_pageview_title": "release.view", "countryAbbr": "us", "log
inUrl": "https://www.discogs.com/login", "enableGoogleAnalytics": true, "isMobil
e": false, "enableGaDebugging": false, "recommendations/_macro:pagetype": "relea
se", "activationHelpUrl": "/help/doc/activation", "autocompleteUrl": "/search/ac
", "ga_pageview_page": "/release.view", "imagesHost": "https://s.discogs.com/",
"recommendations/_macro:pageid": 12470586, "defaultLocale": "en", "pageObject":
{"styles": ["Jazz-Rock", "Prog Rock"], "genres": ["Jazz", "Rock"], "wantlist": {
}, "objectId": 12470586, "title": "Chase (5) - Ennea", "inventory": {}, "id": "r
12470586", "collection": {}, "objectType": "release"}, "recaptchaKey": "6LdGMgIT
AAAAAPG6lAC5r1yck_LpHUbQs4IbnNtV", "adsObject": {"styles": ["Jazz-Rock", "Prog R
ock"], "genres": ["Jazz", "Rock"], "years": [1972], "ids": ["r12470586", "m23876
8", "a304936", "l1005"], "formats": ["8-Track Cartridge"]}, "endpoint": "release
.view", "useSentry": true, "appEnv": "production", "sha": "0d663f6", "cookieDoma
in": "www.discogs.com", "isDiscogsApp": false, "userIsAdmin": false, "assetsHost
": "https://s.discogs.com/", "requireCookieConsent": false};
            }

我只希望能够解析此输出并获取“ file”的值,但是当我将其视为dict对象时,它表示没有值。实际上是否可以像dict对象那样对待它,而我正在以错误的方式进行处理?还有什么其他方法可以提取值?

0 个答案:

没有答案