Sapete perché il primo esempio nel tutorial BeautifulSoup http://www.crummy.com/software/BeautifulSoup/documentation.html#QuickStart dà AttributeError: 'NavigableString' object has no attribute 'name'
? Secondo lo this answer, i caratteri dello spazio nell'HTML causano il problema. Ho provato con fonti di poche pagine e 1 ha funzionato gli altri hanno dato lo stesso errore (ho rimosso gli spazi). Puoi spiegare a cosa si riferisce "nome" e perché si verifica questo errore? Grazie.BeautifulSoup: AttributeError: l'oggetto 'NavigableString' non ha attributo 'nome'
risposta
name
farà riferimento al nome del tag, se l'oggetto è un Tag
oggetto (es: <html>
name = "html")
se si dispone di spazio nella vostra markup in tra i nodi BeautifulSoup si trasformerà quelli in NavigableString
'S. Pertanto, se si utilizza l'indice di contents
per afferrare i nodi, è possibile prendere uno NavigableString
anziché il successivo Tag
.
Per evitare questo, query per il nodo che si desideri: Searching the Parse Tree
o se si conosce il nome del prossimo tag che si desidera, è possibile utilizzare tale nome come la proprietà e restituirà il primo Tag
con questo nome o None
se non esistono bambini con quel nome: Using Tag Names as Members
Se volete utilizzare il contents
si controlla gli oggetti si sta lavorando. L'errore che si stanno ottenendo solo significa che si sta tentando di accedere alla proprietà nome perché il codice si presuppone che sia un Tag
È possibile utilizzare try catch per eliminare i casi in cui String navigabile viene analizzato nel ciclo, in questo modo:
for j in soup.find_all(...)
try:
print j.find(...)
except NavigableString:
pass
semplicemente ignorare NavigableString
oggetti mentre scorrendo l'albero:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for body_child in soup.body.children:
if isinstance(body_child, NavigableString):
continue
if isinstance(body_child, Tag):
print(body_child.name)
- 1. AttributeError: l'oggetto 'tuple' non ha attributo 'write'
- 2. AttributeError: l'oggetto 'numpy.int32' non ha attributo 'append'
- 3. AttributeError: l'oggetto 'int' non ha attributo '_sa_instance_state'
- 4. AttributeError: L'oggetto 'WSGIRequest' non ha attributo 'session'
- 5. AttributeError: l'oggetto 'module' non ha attributo
- 6. AttributeError: l'oggetto 'Settings' non ha attributo 'ROOT_URLCONF'
- 7. AttributeError: l'oggetto 'unicode' non ha attributo '_sa_instance_state'
- 8. Python AttributeError: L'oggetto non ha attributo
- 9. AttributeError: l'oggetto 'module' non ha attributo 'scores'
- 10. AttributeError: oggetto 'InstrumentedList' non ha alcun attributo
- 11. AttributeError: l'oggetto 'module' non ha attributo 'sslwrap'
- 12. AttributeError: l'oggetto 'user_list' non ha attributo '_ignore_model_permissions'
- 13. AttributeError: l'oggetto 'module' non ha attributo 'getmro'
- 14. AttributeError: l'oggetto 'dict' non ha attributo
- 15. AttributeError: l'oggetto 'Context' non ha attributo 'wrap_socket'
- 16. AttributeError: 'modulo' oggetto non ha 'test' attributo
- 17. AttributeError: l'oggetto 'module' non ha attributo 'urlopen'
- 18. AttributeError: 'modulo' oggetto non ha attributo 'SignedJwtAssertionCredentials'
- 19. AttributeError: l'oggetto 'set' non ha attributo 'items'
- 20. AttributeError: L'oggetto 'NoneType' non ha attributo 'endswith'
- 21. AttributeError: l'oggetto 'Namespace' non ha attributo
- 22. AttributeError: l'oggetto 'str' non ha attributo 'decodifica'
- 23. AttributeError: l'oggetto 'module' non ha attributo 'setdefaultencoding'
- 24. AttributeError: L'oggetto 'Class' non ha attributo 'a'
- 25. AttributeError: l'oggetto 'str' non ha attributo 'iteritems'
- 26. AttributeError: l'oggetto 'DataFrame' non ha attributo 'Altezza'
- 27. AttributeError: l'oggetto 'tuple' non ha attributo
- 28. AttributeError: 'modulo' oggetto non ha attributo 'TestCase'
- 29. AttributeError: l'oggetto 'RegexURLPattern' non ha attributo '_callback'
- 30. AttributeError: l'oggetto 'FreqDist' non ha attributo 'inc'
.find_all() appare per restituire solo tag di livello inferiore e ignora gli spazi bianchi ... –