我试着从url下面刮出产品描述。但这并不是回报
https://www.mambo.com.br/arroz-integral-camil-1kg/p
下面的代码不返回描述文本:
myurl = "https://www.mambo.com.br/arroz-integral-camil-1kg/p"
agent = {'User-Agent': 'Magic Browser'}
req1 = requests.get(myurl, headers=agent)
soup2 = BeautifulSoup(req1.content, "html.parser")
for desc in soup2.findAll('div', {"class": "accordion__body ProductDescription"}):
print(desc.text)请修复并帮助对问题进行编码。
发布于 2018-07-29 06:44:50
数据是通过Ajax动态加载的-页面本身不包含任何数据。
您需要从主页提取SKU (产品编号),然后调用位于https://www.mambo.com.br/api/的API以获取JSON数据(您可以看到该页面在Firefox/Chrome网络检查器中执行的所有请求):
from bs4 import BeautifulSoup
import requests
import json
product_url = "https://www.mambo.com.br/api/catalog_system/pub/products/search/?fq=productId:{}"
url = "https://www.mambo.com.br/arroz-integral-camil-1kg/p"
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
sku = soup.select_one('meta[itemprop="sku"]')['content']
data_json = json.loads(requests.get(product_url.format(sku)).text)
for p in data_json:
print(p['description'])
# print(json.dumps(data_json, indent=4)) # this will print all data about the product输出:
O arroz integral faz parte da linha de produtos naturais da Camil. É saudável, prático e gostoso. Melhor que saborear um prato delicioso é fazer isso com saúde!编辑:
或者,您可以从<meta itemprop="description">获得描述,但我不确定这个标签中的描述是否完整:
url = "https://www.mambo.com.br/arroz-integral-camil-1kg/p"
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
print(soup.select_one('meta[itemprop="description"]')['content'])指纹:
O arroz integral faz parte da linha de produtos naturais da Camil. É saudável, prático e gostoso. Melhor que saborear um prato delicioso é fazer isso com saúde!https://stackoverflow.com/questions/51577841
复制相似问题