Python: 使用正则表达式在网站标签之间查找句子

-2 投票
1 回答
1514 浏览
提问于 2025-04-17 06:07

我想在 ...class="question-hyperlink"> 标签之间找到一句话。

用这段代码:

import urllib2
import re

response = urllib2.urlopen('https://stackoverflow.com/questions/tagged/python')
html = response.read(20000)

a = re.search('question-hyperlink', html)
print html[a.end()+3:a.end()+100]

我得到了:

DF5 for Python: high level vs low level interfaces. h5py</a></h3>        <div class="excerpt">

我该如何在下一个 < 停下来呢?我又该如何找到下一句呢?我想用正则表达式来实现。

编辑

给那些点了反对票的人:我想像他那样做:

正则表达式匹配开放标签,除了XHTML自包含标签

1 个回答

4

如果你一定要用正则表达式来做,可以试试下面这个:

a = re.finditer('<a.+?question-hyperlink">(.+?)</a>', html)
for m in a: 
    print m.group(1)

顺便提一下,这段代码做的事情和上面的一样,但方式要更稳健一些:

doc = BeautifulSoup(html)
for a in doc.findAll('a', 'question-hyperlink'):
    print a.text

撰写回答