2016-09-16 104 views
2

所以我想在网站的html源文件中找到一个特定的字符串。找到一个包含特定文本的HTML标签

例)如果我有以下的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 
+0

'ATTRS = { '类': '数据'}'看起来错了,应该是''class':'rev',如果有的话。 –

回答

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}})] 
+1

谢谢。这很好。不得不将其改为bs4 – whatislife

相关问题