2017-06-27 5 views
0
print("<&s &s>" &(element.tag,element.attrib)) 

Attribute: 'list' Objekt hat kein Attribut 'tag'Was ist falsch an der "print_element" -Methode?

from lxml import html 
import requests 

def print_element(element): 
    print("<&s &s>" &(element.tag,element.attrib)) 

r = requests.get("https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_and_their_capitals_in_native_languages") 

tree = html.fromstring(r.content) 
s = tree.xpath('//table') 
print_element(s) 

Jede Hilfe würde geschätzt. Vielen Dank!

Antwort

0

Sie haben eine Liste, also sollten Sie das Element in der Liste verwenden. Und vielleicht sollten Sie "&" in "%" ändern.

from lxml import html 
import requests 

def print_element(element): 
    print("<%s %s>" %(element.tag,element.attrib)) 

r = requests.get("https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_and_their_capitals_in_native_languages") 

tree = html.fromstring(r.content) 
s = tree.xpath('//table') 
print type(s) # you will see this s is a list 
for item in s: 
    print_element(item) 
0

Es scheint, als wäre Ihre element eine Liste von "Elementen" und nicht ein einzelnes Element.