查找包含特定文本的HTML标记

时间:2016-09-16 11:06:50

标签: python html python-2.7

所以我试图在网站html源文件中找到一个特定的字符串。

Ex)如果我有以下html标签

<div class="rev" data="123456789adfdfdfdfadf"></div>

我希望能够找到包含div class = "rev"的特定行和内部数据并打印出来"123456789adfdfdfdfadf"

但在我这样做之前,我只是想确保找到合适的标签,但我不断将[]作为输出

这是我的代码

import urllib2
from BeautifulSoup import BeautifulSoup
import re
request = urllib2.Request("http://www.adidas.co.uk/nmd_r1-shoes/BB1970.html")
request.add_header("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5")

f = urllib2.urlopen(request)
soup = BeautifulSoup(f)

d = soup.findAll('div', text = re.compile('123456789adfdfdfdfadf'), attrs = {'class' : 'data'})
print d

1 个答案:

答案 0 :(得分:1)

您正在混合数据(作为属性)和您正在寻找的文本 给定div后,您应该找到它:

print [item["data"] 
       for item in soup.find_all('div', {'_class': 'rev'}) 
       if "data" in item.attrs]

或者,更准确一点:

[item['data-bin'] 
 for item in soup.find_all('div', {'_class': 'rev', attrs={'data-bin' : True}})]