I want to find all links in a div, for example:
<div>
<a href="#0"></a>
<a href="#1"></a>
<a href="#2"></a>
</div>
So I write a func as follow:
def get_links(div):
links = []
if div.tag == 'a':
links.append(div)
return links
else:
for a in div:
links + get_links(a)
return links
why the results is [] rather than [a, a, a]? ------- question
I know this is a question of list reference, could you show some detail
This is the complete module:
import lxml.html
def get_links(div):
links = []
if div.tag == 'a':
links.append(div)
return links
else:
for a in div:
links + get_links(a)
return links
if __name__ == '__main__':
fragment = '''
<div>
<a href="#0">1</a>
<a href="#1">2</a>
<a href="#2">3</a>
</div>'''
fragment = lxml.html.fromstring(fragment)
links = get_links(fragment) # <---------------
links + get_links(a)tolinks += get_links(a)links, who else should do it?