擅长:python、mysql、java
<p>首先,在第三个标记的最后一个标记中缺少空格。这可能会导致使用beauthoulsoup解析时出现问题。在</p>
<p>有两种方法可以通过您提供的文本轻松实现:</p>
<ol>
<li>美丽组:
<pre><code>html = BeautifulSoup(htmlString, 'html.parser')
for tag in html.find_all('td', align=None):
print(tag.string)</code></pre></li>
<li><p>纯正则表达式(无美化组):</p>
<pre><code>for val in re.findall(re.compile('\&lttd\&gt(.*?)\&lt\/td\&gt'), htmlString):
print val</code></pre></li>
</ol>
<p>我能说的最好,因为beauthulsoup在使用“find_all”函数时搜索标记名重新编译将使用正则表达式查找与模式匹配的标记名。例如,如果要查找所有“tbody”和“td”标记,可以使用以下命令:</p>
<pre><code>for tag in html.find_all(re.compile('t[d|b]')):
print tag.string
</code></pre>
<p>从找到的标记中,您可以访问开始和结束标记中的属性或值/字符串。我还没有找到一种方法来使用BeautifulSoup通过标签的值/字符串来查找标签。在</p>
<p>以下是一些例子的参考,以防有帮助:<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/#a-regular-expression" rel="nofollow">BeautifulSoup Documentation - A Regular Expression</a></p>
<p>另外,在beauthulsoup中重新编译在“find_all”中,用于“筛选/匹配”,而不是用于捕获组。意思是,regex是一个匹配的模式。您不能使用(.*?)在这种情况下提取一部分值进行比较。在</p>