2016-09-16 3 views
2

Так что я пытаюсь найти определенную строку в исходном файле html-файла.Найти 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 
+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

Смежные вопросы