我是python的新手,并且在使用正则表达式方面遇到了麻烦。我想使用正则表达式来获取pp.53-63,并且能够在整个网站中为多个与此类似的行进行操作。任何人都可以帮助我。
<div class="src">
Foreign Affairs, Vol. 79, No. 4 (Jul. - Aug., 2000), pp. 53-63
</div>
到目前为止,我把它写成:
urlpage = page.read()
outputh.write(urlpage)
matches = re.findall(r'(<div class="src">+[\d+,\d]+\s+Search\s+Results)', urlpage)
但我知道这是错的..
答案 0 :(得分:0)
你走了:
from bs4 import BeautifulSoup
import re
data = """<div class="src">
Foreign Affairs, Vol. 79, No. 4 (Jul. - Aug., 2000), pp. 53-63
</div>"""
soup = BeautifulSoup(data)
rx = re.compile(r'\bpp\. \d+-\d+')
pages = [rx.search(div.strip()).group(0)
for div in soup.find_all(string = rx)]
# ['pp. 53-63']
这使用了一个解析器(BeautifulSoup
)和一个正则表达式,区别在于你没有在DOM本身上运行你的正则表达式,而是让bs4
为你做。