如何找到美化不显示的元素

How to find an element that prettify doesn't show

我正在尝试通过 Beautifulsoup 获取此 product 的来源。我正在尝试 select 订购产品数据的 div 但我做不到。

后来我尝试获取代码中的其他div,代码中的第一个,但遇到了同样的问题。然后我运行美化,我搜索的div根本就没有出现。我怎样才能得到这些数据?

这是我试过的代码:

import urllib.request
from bs4 import BeautifulSoup

urlpage = 'https://www.esselungaacasa.it/ecommerce/nav/auth/supermercato/home.html?freevisit=true#!/negozio/prodotto/5397031?productCode=417932&productType=GROCERY&menuItemId=300000000002399'
page = urllib.request.urlopen(urlpage)
soup = BeautifulSoup(page, 'html.parser')
results = soup.findAll('div', attrs={'class': 'dettaglio'})

我希望我能得到那个 div 的所有内容,这样以后我就可以 抓取 里面的段落(特别是 'Origine' 段落) .谢谢!

该页面向此url请求该内容:

https://www.esselungaacasa.it/ecommerce/resources/auth/displayable/breadcrumbs/300000000002399

这需要 headers 身份验证,它似乎包含如下所示(已测试多次)。这些值仅在不到几分钟的时间内有效,因此您需要查看是否可以从先前的请求中获取它们并动态更新它们。

json 包含 html,您可以使用 BeautifulSoup 提取和解析它。

import requests    
headers = {
          'Cookie' : 'JSESSIONID=2GqxcW2JyxJ6JvSj7N6VsySBjG29fv4X4tqyVhkcQCJk012YZrJF!-137423361; rxVisitor=155754270561377S2OAJ7NF3RRVHAGOONVM6J8BTDM9E9; _ga=GA1.3.1899558727.1557542711; _gid=GA1.3.1887185695.1557542711; cc_advertising=yes; dtSa=-; BIGipServerPOOL-produzione20.esselungaacasa.it-HTTP=!t1YtlfoXiajamCWJ/a5rCzj/QGm88V4Qo0VUYPxsnhd0TBgWyp+Vfi6oydBlxU/hJ9i5S7kWGT9W/is=; BIGipServerPOOL-ecom30.webapp.esselungaacasa.it-AEM-HTTP=!EMW5HHM3WmpSfPyJ/a5rCzj/QGm88eK13IPf7jx3ZN2rGHroQLAAMcP+cqfG6pU/IQ0WkgGmjLJMCQ8=; dtCookie=13B9EA5CDF2E30CCE04D4415DA0CE8D|bdb705b7939fba60|1; XSRF-ECOM-TOKEN=16B8A78F9DC3F2AFFD0137EA22662C77A098944B2FD6F2F2C27693BD76BAF15C; dtLatC=127; BIGipServerPOOL-ecom30.webapp.esselungaacasa.it-8001=!S2wA3HtVHQfvqreJ/a5rCzj/QGm88ZamTbPAvAabBDwyKXTfVg7cipoMLFPFfqZEc5Cotrd56OEwVA==; _gat_UA-79392629-1=1; dtPC=14681956_471h17vCBGNMJLCLJIAOCFOMIEGLEBHHPIFOKNI; rxvt=1557546485823|1557542705627',
           'x-dtpc;' : '14433049_580h6vCBGNMJLCLJIAOCFOMIEGLEBHHPIFOKNI',
           'X-XSRF-TOKEN' : '16B8A78F9DC3F2AFFD0137EA22662C77A098944B2FD6F2F2C27693BD76BAF15C'

          }

r = requests.get('https://www.esselungaacasa.it/ecommerce/resources/auth/displayable/detail/5397031/300000000002399', headers = headers)

您可以查看 json 响应的示例 here

内容 html 位于名为 informations 的列表中。示例显示: