我想从网站上抓取他们的产品价格和名称使用python,只使用beautifulsoup,请求和json模块



我试过这样抓取网页。我想从网站上的产品获得价格和名称。

和我不知道如何提取特定的脚本包括"产品详细信息jason inline script." " script type="application/ld+json>">

所以使用beautifulsoup提取所有的Jason内联脚本数据我把它分配给脚本。我尝试了很多方法来提取特定的一个脚本,但它不起作用。所以我尝试像列表一样切片。

我使用索引来提取我想要的特定脚本。我选择index[6]来隔离具体的脚本。我将变量赋值给name "product script。">

后,我使用一些技术拆分并提取价格和产品名称。

但我想用另一种方式从json内联脚本中提取数据。

我的代码:

def function_glomark_name(url_glomark):
global product_name_glomark
req2 = requests.get(url_glomark)
product_request(req2)
head_part = soup.find('head')
scripts = head_part.find_all('script')
product_script = scripts[6]

#Remove tags    
pd_list = product_script.contents
for item in pd_list:
product_des = item
# make Dictionary
product_glomark= json.loads(product_des)
#Assign product_name_glomark
product_name_glomark = (product_glomark['name'])
print(product_name_glomark)
return product_name_glomark

glomark_coconut = 'https://glomark.lk/coconut/p/11624'

#after call function

function_glomark_name (glomark_coconut)

function_lauli_name (lauli_coconut)

输出:椰子

要解析特定<script>的内容,您可以使用以下示例:

import json
import requests
from bs4 import BeautifulSoup

url = "https://glomark.lk/coconut/p/11624"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
s = soup.select_one('script[type="application/ld+json"]')
data = json.loads(s.text)
for key, value in data.items():
print(f"{key=} {value=}")
print("-" * 80)
print(f'Name is {data["name"]}')

打印:

key='@context' value='https://schema.org'
key='@type' value='Product'
key='productID' value='11624'
key='name' value='Coconut'
key='description' value='Coconut'
key='url' value='/coconut/p/11624'
key='image' value='https://objectstorage.ap-mumbai-1.oraclecloud.com/n/softlogicbicloud/b/cdn/o/products/310310--01--1555692325.jpeg'
key='brand' value='GLOMARK'
key='offers' value=[{'@type': 'Offer', 'price': '92', 'priceCurrency': 'LKR', 'itemCondition': 'https://schema.org/NewCondition', 'availability': 'https://schema.org/InStock'}]
--------------------------------------------------------------------------------
Name is Coconut

相关内容

  • 没有找到相关文章

最新更新