Вы можете просто использовать метод find
с указателем на ваш тег <script>
с атрибутом attr type=application/json
Затем вы можете использовать пакет json
для загрузки значения внутри dict
Вот пример кода:
from bs4 import BeautifulSoup as soup
import requests
import json
page_link = 'https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc'
page_response = requests.get(page_link, timeout=5)
page_content = soup(page_response.text, "html.parser")
json_tag = page_content.find('script',{'type':'application/json'})
json_text = json_tag.get_text()
json_dict = json.loads(json_text)
print(json_dict)
РЕДАКТИРОВАТЬ: Мой плохой, я не видел, что вы ищете type=application/ld+json
attr Как кажется, есть несколько <script>
с помощью этого атрибута вы можете просто использовать метод find_all
:
from bs4 import BeautifulSoup as soup
import requests
import json
page_link = 'https://www.lazada.com.my/catalog/?_keyori=ss&from=input&page=1&q=h370m&sort=priceasc'
page_response = requests.get(page_link, timeout=5)
page_content = soup(page_response.text, "html.parser")
json_tags = page_content.find_all('script',{'type':'application/ld+json'})
for jtag in json_tags:
json_text = jtag.get_text()
json_dict = json.loads(json_text)
print(json_dict)