gpt4 book ai didi

python - 在 BeautifulSoup 中用字典解析脚本标签

转载 作者:行者123 更新时间:2023-11-30 22:34:04 29 4
gpt4 key购买 nike

正在研究 this 的部分答案问题,我遇到了一个 bs4.element.Tag ,它是一堆嵌套的字典和列表(s,如下)。

有没有办法返回s中包含的网址列表而不使用re.find_all?有关此标签结构的其他评论也很有帮助。

from bs4 import BeautifulSoup
import requests

link = 'https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab&sort=p'
r = requests.get(link)
soup = BeautifulSoup(r.text, 'html.parser')

s = soup.find('script', type='application/ld+json')

## the first bit of s:
# s
# Out[116]:
# <script type="application/ld+json">
# {"@context":"http://schema.org","@type":"ItemList","numberOfItems":50,

我尝试过的:

  • s 上随机浏览带有制表符补全功能的方法。
  • 通过docs进行挑选.

我的问题是 s 只有 1 个属性(type)并且似乎没有任何子标签。

最佳答案

您可以使用s.text来获取脚本的内容。它是 JSON,因此您可以使用 json.loads 解析它。从那里,这是简单的字典访问:

import json

from bs4 import BeautifulSoup
import requests

link = 'https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab&sort=p'
r = requests.get(link)

soup = BeautifulSoup(r.text, 'html.parser')

s = soup.find('script', type='application/ld+json')

urls = [el['url'] for el in json.loads(s.text)['itemListElement']]

print(urls)

关于python - 在 BeautifulSoup 中用字典解析脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44961049/

29 4 0