2015-11-15 2 views
0

Невозможно исповедать его. Единственная причина, почему этот вопрос здесь является крайней лени проявляется как попытка избежать чтенияРазбор короткой струны с BeautifulSoup

import urllib2 
response = urllib2.urlopen('http://www.crummy.com/software/BeautifulSoup/bs4/doc/') 
html = response.read() 
print len(html) 

274574 байт документации BeautifulSoup, просто чтобы справиться с довольно простой HREF тега, который вы видите в следующих строках.

mystr = '<a href="gazette.html" detail="particularities">Access it!</a>' 
soup = BeautifulSoup(mystr, 'html.parser') 
print(soup.prettify()) 

Естественно приукрашивание выглядит

<a detail="particularities" href="gazette.html"> 
Access it! 
</a> 

Теперь я хотел бы ответить на следующие вопросы:

  1. Есть ли действительно a тег в mystr? и после тестирования, что есть:
  2. Есть ли тег детали? и, после тестирования, что есть:
  3. Какова ценность тега детали?
  4. И, наконец, что такое контент? ('Доступ к нему!' В данном случае)
+1

Ctrl + f делает чудеса :) есть также хорошее меню навигации слева от страницы BeautifulSoup –

ответ

1

Мы можем ответить на ваши вопросы в порядке.

from bs4 import BeautifulSoup 

mystr = '<a href="gazette.html" detail="particularities">Access it!</a>' 
soup = BeautifulSoup(mystr, 'html.parser') 

a = soup.find('a') 
if a: # a will be None if there are no <a> tags 
    try: 
     detail = a['detail'] 
     print "Detail: {}".format(detail) 
     print "Content: {}".format(a.text) 
    except KeyError: # will throw KeyError if no key named 'detail' 
     print "No details" 
     print "Content: {}".format(a.text) 
else: 
    print "No <a> tags" 
-1

Я прочитал документы:

from bs4 import BeautifulSoup 

mystr = '<a href="gazette.html" detail="particularities">Access it!</a>' 
soup = BeautifulSoup(mystr, 'html.parser') 
a = soup.findAll('a', detail='particularities')[0] 
print a.text 
  • (только потому, что я хороший парень)