【发布时间】:2021-08-05 05:57:09
【问题描述】:
我正在尝试使用 find() 方法解析网站,但它没有找到我尝试解析的所有元素。三个元素中的两个被提取得很好。但我没有成功 解析“商店位置”。 HTML的相关sn-p是
<span class="fs-selected-store__name u-bold" data-store-id="65defcf2-bc15-490e-a84f-1f13b769cd22">PAK'nSAVE Albany</span>
这是我的代码
import requests
from bs4 import BeautifulSoup as bs
import re
dollars_pattern = '>([0-9][0-9]?)'
cents_pattern = '>([0-9][0-9])'
r = requests.get('https://www.paknsaveonline.co.nz/product/5026677_ea_000pns?name=organic-black-beans')
soup = bs(r.content,'html.parser')
#soup = bs(r.content,'lxml')
cents = str(soup.find('span', {'class': "fs-price-lockup__cents"}))
dollars = str(soup.find('span', {'class': "fs-price-lockup__dollars"}))
Store = str(soup.find('span', {'class': "fs-selected-store__name u-bold"}))
centsprice =re.findall(cents_pattern, cents)
dollarsprice = re.findall(dollars_pattern, dollars)
print(dollarsprice, centsprice, store)
Output: ['1'] ['89'] None
我得到了美元价格和美分价格的预期输出,但没有得到商店的结果。 没有错误 - 表明这是一个匹配问题。 这是Google Colab.中的代码
我测试了一个不同的解析器,但这没有帮助(请参阅代码中的注释)。
谁能指出问题所在?
【问题讨论】:
标签: python parsing beautifulsoup python-requests