python - 在 python + beautiful soup 上使用正则表达式

标签 python parsing

我有一个这样的 html 页面:

<td class="subject windowbg2">
 <div>
  <span id="msg_152617">
   <a href= SOME INFO THAT I WANT </a>
  </span>
 </div>
 <div>
  <span id="msg_465412">
   <a href= SOME INFO THAT I WANT</a>
  </span>
 </div>

如您所见,id="msg_465412"有一个可变数字,所以这是我的代码:

import urllib.request, http.cookiejar,re
from bs4 import BeautifulSoup

contenturl = "http://megahd.me/peliculas-microhd/"
htmll=urllib.request.urlopen(contenturl).read()
soup = BeautifulSoup(htmll)

print (soup.find('span', attrs=re.compile(r"{'id': 'msg_\d{6}'}")))

在最后一行中,我试图找到所有包含 id 的“span”标签,该 id 可以是 msg_######(任意数字),但我的代码有问题,它没有找到任何东西.

P.S: 我想要的所有代码都在一个有 6 列的表中,我想要所有行的第三列,但我认为使用正则表达式更容易

最佳答案

你有点混淆了你的 attrs 参数......目前它是一个包含字典字符串表示的正则表达式,当它需要是一个包含你的属性的字典时'正在搜索其值的正则表达式。

这应该有效:

print (soup.find('span', attrs={'id': re.compile(r"msg_\d{6}")}))

关于python - 在 python + beautiful soup 上使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23839586/

相关文章:

php - 用 PHP 编写的语言解析器库

使用 Parsec 解析数据并省略注释

python - Canvas 事件仅有效一次

python - 在 python2.7 上安装 libxml 预构建二进制文件

json - 在 Qt 4.7 中解析 JSON 的最简单方法

json - Jackson 解析特定数组

javascript - 从 JS 函数中获取函数参数,该函数参数是字符串

python - 从python中的用户输入列表中提取随机项

Python:加载 kmeans 训练数据集并使用它来预测新数据集

python - 使用 pandas 获取开始日期和结束日期之间的工作日