如何使用Python BS4获取Shopify产品信息

如何使用Python BS4获取Shopify产品信息,python,beautifulsoup,python-requests,shopify,extract,Python,Beautifulsoup,Python Requests,Shopify,Extract,返回: import requests from bs4 import BeautifulSoup source = requests.get('https://kith.com/products.json').text soup = BeautifulSoup(source, 'lxml') p = soup.find('p') text = list(p.children)[0] print('') print(text.strip()) 我有问题进一步简化,只显示id、标题和句柄。

返回:

import requests
from bs4 import BeautifulSoup

source = requests.get('https://kith.com/products.json').text
soup = BeautifulSoup(source, 'lxml')
p = soup.find('p')
text = list(p.children)[0]


print('')
print(text.strip())

我有问题进一步简化,只显示id、标题和句柄。有人有什么建议吗?我甚至可能把这一切都搞错了,我这里有点紧张。

在这个例子中,您不需要使用
BeautifulSoup
,因为您使用的是json提要<代码>请求提供了一种方便的方式,可以将响应作为json对象访问;因此,您需要做的就是:


{"products":[{"id":2069443051648,"title":"BornxRaised Indian Summer Print Button-Up Shirt - Multi","handle":"bxrb4010smpt-mlt"}]
import requests

plist = requests.get('https://kith.com/products.json').json()
for product in plist:
    print(product['id'], product['title'], product['handle'])

在本例中,您不需要使用
BeautifulSoup
,因为您使用的是json提要<代码>请求提供了一种方便的方式,可以将响应作为json对象访问;因此,您需要做的就是:


{"products":[{"id":2069443051648,"title":"BornxRaised Indian Summer Print Button-Up Shirt - Multi","handle":"bxrb4010smpt-mlt"}]
import requests

plist = requests.get('https://kith.com/products.json').json()
for product in plist:
    print(product['id'], product['title'], product['handle'])

由于URL是json,您可以直接使用
json
库,而不是使用
Beautifulsoup
。您需要做的是:


{"products":[{"id":2069443051648,"title":"BornxRaised Indian Summer Print Button-Up Shirt - Multi","handle":"bxrb4010smpt-mlt"}]
import requests

plist = requests.get('https://kith.com/products.json').json()
for product in plist:
    print(product['id'], product['title'], product['handle'])
结果是这样的:

import requests
import json

source = requests.get('https://kith.com/products.json').text
js = json.loads(source)

id = js["products"][0]["id"]
title = js["products"][0]["title"]
handle = js["products"][0]["handle"]

print(id, title, handle)

由于URL是json,您可以直接使用
json
库,而不是使用
Beautifulsoup
。您需要做的是:


{"products":[{"id":2069443051648,"title":"BornxRaised Indian Summer Print Button-Up Shirt - Multi","handle":"bxrb4010smpt-mlt"}]
import requests

plist = requests.get('https://kith.com/products.json').json()
for product in plist:
    print(product['id'], product['title'], product['handle'])
结果是这样的:

import requests
import json

source = requests.get('https://kith.com/products.json').text
js = json.loads(source)

id = js["products"][0]["id"]
title = js["products"][0]["title"]
handle = js["products"][0]["handle"]

print(id, title, handle)

要获取
id
title
handle
,您可以尝试:

2069443051648 BornxRaised Indian Summer Print Button-Up Shirt - Multi bxrb4010smpt-mlt
输出将是:

from bs4 import BeautifulSoup
import requests
import json

source = requests.get('https://kith.com/products.json').text

soup = BeautifulSoup(source, 'lxml')
p = soup.find('p')
product = json.loads(p.text)

for i in range(len(product["products"])):
    id = product["products"][i]["id"]
    title = product["products"][i]["title"]
    handle = product["products"][i]["handle"] 
    
    print("id : " + str(id) + " title : " + str(title) + " handle: "+ str(handle))


要获取
id
title
handle
,您可以尝试:

2069443051648 BornxRaised Indian Summer Print Button-Up Shirt - Multi bxrb4010smpt-mlt
输出将是:

from bs4 import BeautifulSoup
import requests
import json

source = requests.get('https://kith.com/products.json').text

soup = BeautifulSoup(source, 'lxml')
p = soup.find('p')
product = json.loads(p.text)

for i in range(len(product["products"])):
    id = product["products"][i]["id"]
    title = product["products"][i]["title"]
    handle = product["products"][i]["handle"] 
    
    print("id : " + str(id) + " title : " + str(title) + " handle: "+ str(handle))