<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 BeautifulSoup
Step1:  Lidando com filhos e outros descendentes
Se você o escrevesse usando a função descendants() em vez da função children(), outras tags seriam encontradas (img, span, entre outros). É muito importante diferenciar filhos e descendentes!
Para listar as linhas de produtos da tabela giftList.
Step2:  Lidando com irmãos
Para exibir todas as linhas de produtos da tabela.
<ASSISTANT_TASK:>
Python Code:
from bs4 import BeautifulSoup
import requests
req = requests.get("http://pythonscraping.com/pages/page3.html")
bs = BeautifulSoup(req.text, "html.parser")
bs.find({"span"})
bs.findAll({"span"})
Explanation: BeautifulSoup
End of explanation
for filho in bs.find("table", {"id":"giftList"}).children:
    print(filho)
Explanation: Lidando com filhos e outros descendentes
Se você o escrevesse usando a função descendants() em vez da função children(), outras tags seriam encontradas (img, span, entre outros). É muito importante diferenciar filhos e descendentes!
Para listar as linhas de produtos da tabela giftList.
End of explanation
for irmao in bs.find("table", {"id":"giftList"}).tr.next_siblings:
    print(irmao)
Explanation: Lidando com irmãos
Para exibir todas as linhas de produtos da tabela.
End of explanation
<END_TASK>