我已经在python
中结合BeautifulSoup
编写了一些代码,以在addresses
标签中获得了一些br
。如果要单独使用BeautifulSoup
来解析所需的文本,我可以使用下面显示的.next_sibling
来完成。我的意图是将br
和BeautifulSoup
结合起来抓取re
中的内容。
这是我到目前为止的尝试:
import re
from bs4 import BeautifulSoup
content = """
<div class="store"">
<b>address</b><br>BLOCK ANG MO KIO AVE<br>
<b>address_one</b><br>BLOCK 407 ANG MO KIO AVE 10 #01-741<br>
<b>address_two</b><br>NO. 53 ANG MO KIO AVE 3 AMK HUB#B1-82<br>
</div>
"""
# soup = BeautifulSoup(content,"lxml")
# for addr in soup.find_all("b"):
# print(addr.next_sibling.next_sibling)
soup = BeautifulSoup(content,"lxml")
for addr in soup.find_all(text=re.compile(r"<br>(.*?)</br>")):
print(addr) #It prints nothing, no error either
仅供参考,如果不加注释,被注释掉的部分将正常工作。当我试图弄清re
在这种情况下的用途时,如果有人为我提供帮助,我将非常高兴。
答案 0 :(得分:1)
如果要使用正则表达式,可以尝试以下操作:
for addr in re.findall(r"<br>(.*?)<br>", content):
print(addr)
输出为
BLOCK ANG MO KIO AVE
BLOCK 407 ANG MO KIO AVE 10 #01-741
NO. 53 ANG MO KIO AVE 3 AMK HUB#B1-82