Python BeautifulSoup未找到标记3

Python BeautifulSoup未找到标记3,python,html,beautifulsoup,Python,Html,Beautifulsoup,BeautifulSoup未找到div标记“pl price js pl price”。我在inspect元素中看到它,但是当我运行代码时,代码返回“None”。Div“product details”也在HTML中,可以找到它。但是,beautifulsoup找不到div标签'pl price js pl price'。为什么呢 我的代码: import urllib2, sys, requests from bs4 import BeautifulSoup site = "https://

BeautifulSoup未找到div标记“pl price js pl price”。我在inspect元素中看到它,但是当我运行代码时,代码返回“None”。Div“product details”也在HTML中,可以找到它。但是,beautifulsoup找不到div标签'pl price js pl price'。为什么呢

我的代码:

import urllib2, sys, requests
from bs4 import BeautifulSoup

site = "https://www.lowes.com/pl/Refrigerators-Appliances/4294857973?goToProdList=true"
hdr = {'User-Agent': 'Mozilla/5.0'}
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page, 'html.parser')

details = soup.find('div', attrs={'class': 'product-details'})
name = details.find('p', attrs={'class': 'h6 product-title js-product-title met-product-title v-spacing-large ellipsis-three-line art-plp-itemDescription'}) 
price = soup.find('div', attrs={'class': "product-pricing"})
actual_price = price.find('div', attrs={'class': "pl-price js-pl-price"})

print actual_price
来自网站的HTML:

<div class="product-details">
 <div class="product-pricing">
  <div class="pl-price js-pl-price" tabindex="-1">
  <!-- Start of Product Family Pricing -->
  <!-- Map price and savings through date present for product family -->

结果:

scrape_products.py 没有


如果查看
price
搜索的结果,可以在HTML中看到以下文本:

“由于Lowes.com在全国范围内,我们首先检查您当地商店的库存,以便更快地完成您的订单。您可能会发现产品或定价与您当地商店的产品或定价不同,但我们会尽一切努力将这些差异降至最低,以便您能够以尽可能最好的价格获得您想要的产品。”


这会让我相信定价信息不会立即加载,因此不会加载到由BeautifulSoup解析的HTML中。您应该尝试使用Selenium的无头浏览器解决方案

你是如何从网站获取“HTML”的,它与你传递给bs4的
页面相同吗?@jornsharpe是的,它与我传递给bs4的页面相同bs4@jonrsharpe我所做的是右键单击网站,并使用inspect元素查看我想要访问的div。BeautifulSoup似乎找不到我正在寻找的类为“pl price js pl price”的div。显然,我做错了什么。我无法使用
lxml
找到该类属性,也无法使用Chrome中的开发工具找到它。您需要阅读更多关于web抓取的内容,重点是帮助您使用JavaScript/Ajax加载数据的页面的工具。我同意,这就是方法。看起来,查看价格的唯一方法是将商品实际添加到购物车中。Selenium能够以这种方式与网站交互