首先,python是我学习的第一门语言,我正在抓取一个城市的租金价格网站,我使用BeautifulSoup
来获取价格数据,但是我无法获取它的值
标签。
下面是标签:
<p><strong class="hidden show-mobile-inline">Monthly Rent: </strong>2,450 +</p>
下面是我的代码:
text = soup.find_all("div", {"class", "plan-group rent"})
for item in text:
rent = item.find_all("p")
for price in rent:
print(price.string)
我也试过:
text = soup.find_all("div", {"class", "plan-group rent"})
for item in text:
rent = item.find_all("p")
for price in rent:
items = price.find_all("strong")
for item in items:
print('item.string')
打印出"月租金:"是可以的,但是我不明白为什么我不能得到实际的价格,上面的代码告诉我月租金在strong标签中,这意味着p标签只包含我想要的价格。
2条答案
按热度按时间wljmcqd81#
正如@kyrony提到的,在你的
<p>
中有两个孩子--因为你选择了<strong>
,你只会得到其中一个文本。您可以使用不同的方法
stripped_strings
:或
contents
或使用
recursive
参数示例
ulydmbyx2#
从技术上讲,您的内容有两个子项
一个强有力的标签
和一根细绳
beautiful soup中的字符串方法只接受一个参数,所以返回None。为了得到第二个字符串,你需要使用stripped_strings生成器。