我正在做一个个人项目,我从网站上抓取数据。我正在尝试使用漂亮的汤来做到这一点,但是我遇到了相同类但属性不同的数据。例如:
build: {
/*
** Run ESLint on save
*/
babel: {
presets({ isServer }) {
return [
[
require.resolve('@nuxt/babel-preset-app'),
// require.resolve('@nuxt/babel-preset-app-edge'), // For nuxt-edge users
{
buildTarget: isServer ? 'server' : 'client',
corejs: { version: 3 }
}
]
]
}
},
extend (config, { isDev, isClient }) {
if (isDev && isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
},
transpile: [/vue-awesome/]
}
我如何仅能获得$ 11.99 / kg?现在我正在 $ 11.99 /千克 $ 5.44 /磅。
我已经完成了x.select('。pi--secondary-price'),但它同时返回了两个价格。我如何只获得1个价格(11.99美元/千克)?
答案 0 :(得分:2)
您可以首先获取<abbr>
标签,然后搜索相应的父标签。像这样:
from bs4 import BeautifulSoup
html = '''
<div class="pi--secondary-price">
<span class="pi--price">$11.99 /<abbr title="Kilogram">kg</abbr></span>
<span class="pi--price">$5.44 /<abbr title="Pound">lb.</abbr></span>
</div>
'''
soup = BeautifulSoup(html, 'html.parser')
kg = soup.find(title="Kilogram")
print(kg.parent.text)
这将为您提供所需的输出$11.99 /kg
。有关更多信息,请参见BeautifulSoup documentation。