【发布时间】:2017-04-19 22:35:25
【问题描述】:
由于我从这里获得了一些帮助,我能够编写一个 Python 脚本,允许我从 HTML 数据中提取数字。但是,由于某种原因,即使我相信我在 findall() 方法中使用了正确的标准,也不是所有的数字都被提取了。这是我的脚本的样子:
search1 = []
soup = BeautifulSoup(data_payload, 'html.parser')
data = soup.findAll("td", {"class":"confluenceTd"})
for d in data:
m = re.search('([0-9]+)',str(d.findAll(text=True)))
if m:
search1.append(m.group(0))
print search1
这是一个 HTML 示例,其中所有数字都被拉出:
<td class="confluenceTd">
<span>
AutoRun
</span>
</td>
<td class="confluenceTd">
<span>
1514444
</span>
</td>
<td class="confluenceTd" colspan="1">
<span style="color: rgb(0,0,0);">
61888758
</span>
在下面的示例中,只有“63811289”被拉出,没有其他内容:
<td class="confluenceTd" colspan="1">
<p>
CSY: 63811289, 62277372, 612377891, 653856796
</p>
<p>
RTY: 54346678
</p>
</td>
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
为什么要使用正则表达式来查找数字,而不是使用 BeautifulSoup 来查找包含数字的
<span>? -
@Barmar 老实说,我对美汤不太熟悉。有没有更简单的方法?
-
同你找到
td元素一样,你也可以在里面找到span。 -
for span in d.findAll('span'):
标签: python python-2.7 beautifulsoup