Acessar uma determinada pagina usando Python

1,259 views
Skip to first unread message

ANascimento

unread,
Feb 9, 2015, 6:54:02 AM2/9/15
to python...@googlegroups.com
Bom dia pessoal, estou usando Tkinter para fazer a parte gráfica é quero acessar uma determinada pagina e adicionar o que esta contido dentro das minhas entrys em dois inputs desta pagina, alguém poderia me dizer como consigo fazer isso por gentileza? e se usando apenas urllib eu consigo fazer isso? 


Desde já agradeço toda e qualquer ajuda, tenham um ótimo dia.



Att;
Adailton do nascimento

Filipe Cifali

unread,
Feb 9, 2015, 7:34:38 AM2/9/15
to python...@googlegroups.com
Recomendo usar este módulo: http://docs.python-requests.org/en/latest/

Ele é muito bom e simples para uso de requisições http, acredito que os exemplos da doc já sejam suficientes para você realizar, mas caso tenha alguma dúvida pergunte ai ;)

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
[ ]'s

Filipe Cifali Stangler

Geovani de Souza

unread,
Feb 9, 2015, 8:08:21 AM2/9/15
to python...@googlegroups.com
Posso estar enganado, mas acho que o Tkinter não tem componente gráfico pra embutir e manipular HTML.

Se fosse possível, imagino que bastaria vc acessar o HTML do componente, encontrar os inputs na DOM (mais fácil se houver suporte a CSS/jQuery selectors) e injetar o conteúdo...

Diego Rocha

unread,
Feb 9, 2015, 8:39:43 AM2/9/15
to python...@googlegroups.com
Cara,

Se a sua intenção é chamar uma página e usar alguns valores contidos no HTML pra preencher os seus componentes:

Requests, como falado pelo Filipe Cifali e BeautifulSoup (http://www.crummy.com/software/BeautifulSoup/) são a minha dupla pra esses casos.

Com o Requests eu faço a requisição e obtenho o HTML de resposta.
Com esse HTML eu uso o BeautifulSoup para fazer o parse do HTML e obter os dados que eu preciso (dentro de alguma tag HTML, input etc).


Atenciosamente,
Diego Rocha

2015-02-09 11:08 GMT-02:00 Geovani de Souza <geovani...@gmail.com>:
Posso estar enganado, mas acho que o Tkinter não tem componente gráfico pra embutir e manipular HTML.

Se fosse possível, imagino que bastaria vc acessar o HTML do componente, encontrar os inputs na DOM (mais fácil se houver suporte a CSS/jQuery selectors) e injetar o conteúdo...

--

Rodolfo Carvalho

unread,
Feb 9, 2015, 8:47:20 AM2/9/15
to python...@googlegroups.com
Quando preciso fazer scrape de páginas HTML eu uso o pyquery[0], mas ouvi dizer que o Scrapy[1] também é muito bom, apesar de a curva de aprendizagem ser bem maior.

[0] https://pythonhosted.org/pyquery/
[1] http://scrapy.org/

Diego Rocha wrote:

Cara,

Se a sua intenção é chamar uma página e usar alguns valores contidos
no HTML pra preencher os seus componentes:

Requests, como falado pelo Filipe Cifali e BeautifulSoup
(http://www.crummy.com/software/BeautifulSoup/) são a minha dupla pra
esses casos.

Com o Requests eu faço a requisição e obtenho o HTML de resposta.
Com esse HTML eu uso o BeautifulSoup para fazer o parse do HTML e
obter os dados que eu preciso (dentro de alguma tag HTML, input etc).


Atenciosamente,
Diego Rocha

2015-02-09 11:08 GMT-02:00 Geovani de Souza <geovani...@gmail.com


    Posso estar enganado, mas acho que o Tkinter não tem componente
    gráfico pra embutir e manipular HTML.

    Se fosse possível, imagino que bastaria vc acessar o HTML do
    componente, encontrar os inputs na DOM (mais fácil se houver
    suporte a CSS/jQuery selectors) e injetar o conteúdo...

    --
    --
    ------------------------------------
    Grupo Python-Brasil
    http://www.python.org.br/wiki/AntesDePerguntar

    <*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

    <*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com


    ---
    Você recebeu essa mensagem porque está inscrito no grupo "Python
    Brasil" dos Grupos do Google.
    Para cancelar inscrição nesse grupo e parar de receber e-mails
    dele, envie um e-mail para
    python-brasi...@googlegroups.com

    Para mais opções, acesse https://groups.google.com/d/optout.


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python
Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
envie um e-mail para python-brasi...@googlegroups.com

Diego Rocha

unread,
Feb 9, 2015, 8:55:52 AM2/9/15
to python...@googlegroups.com
Segue um exemplo simples com requests e beautifulsoup 

https://gist.github.com/diegorocha/7dbf0f4627006aebcdde

Atenciosamente,
Diego Rocha

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Rodolfo Carvalho

unread,
Feb 9, 2015, 9:08:38 AM2/9/15
to python...@googlegroups.com
Pra exemplificar também, segue um gist com pyquery:

https://gist.github.com/rscarvalho/074a88f0ea4431959931

Uma coisa que acho interessante em relação ao pyquery é a possibilidade que você tem de pesquisar os objetos usando CSS selectors, então se você já usa jQuery com JavaScript, não vai ter nenhuma dificuldade com pyquery.

Outra vantagem é que o objeto PyQuery suporta que você passe uma url como argumento no construtor, dessa forma você evita ter que introduzir mais uma lib (ou lidar com urllib / httplib / urllib2) dentro do seu código, se a página que você quer exibir for de acesso público.

Diego Rocha wrote:

Segue um exemplo simples com requests e beautifulsoup

https://gist.github.com/diegorocha/7dbf0f4627006aebcdde

Atenciosamente,
Diego Rocha

2015-02-09 11:47 GMT-02:00 Rodolfo Carvalho <rodol...@gmail.com
<mailto:rodol...@gmail.com>>:


    Quando preciso fazer scrape de páginas HTML eu uso o pyquery[0],
    mas ouvi dizer que o Scrapy[1] também é muito bom, apesar de a
    curva de aprendizagem ser bem maior.

    [0] https://pythonhosted.org/pyquery/
    [1] http://scrapy.org/

    Diego Rocha wrote:


    Cara,

    Se a sua intenção é chamar uma página e usar alguns valores contidos
    no HTML pra preencher os seus componentes:

    Requests, como falado pelo Filipe Cifali e BeautifulSoup
    (http://www.crummy.com/software/BeautifulSoup/) são a minha dupla
    pra
    esses casos.

    Com o Requests eu faço a requisição e obtenho o HTML de resposta.
    Com esse HTML eu uso o BeautifulSoup para fazer o parse do HTML e
    obter os dados que eu preciso (dentro de alguma tag HTML, input etc).


    Atenciosamente,
    Diego Rocha

    2015-02-09 11:08 GMT-02:00 Geovani de Souza
    <geovani...@gmail.com <mailto:geovani...@gmail.com>
    <mailto:geovani...@gmail.com <mailto:geovani...@gmail.com>>>:


        Posso estar enganado, mas acho que o Tkinter não tem componente
        gráfico pra embutir e manipular HTML.

        Se fosse possível, imagino que bastaria vc acessar o HTML do
        componente, encontrar os inputs na DOM (mais fácil se houver
        suporte a CSS/jQuery selectors) e injetar o conteúdo...

        --
        --
        ------------------------------------
        Grupo Python-Brasil
    http://www.python.org.br/wiki/AntesDePerguntar

    <*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

    <*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com
    <mailto:python-brasil%2Bunsu...@googlegroups.com>


        ---
        Você recebeu essa mensagem porque está inscrito no grupo "Python
        Brasil" dos Grupos do Google.
        Para cancelar inscrição nesse grupo e parar de receber e-mails
        dele, envie um e-mail para
    python-brasi...@googlegroups.com

        Para mais opções, acesse https://groups.google.com/d/optout.


    --
    --
    ------------------------------------
    Grupo Python-Brasil
    http://www.python.org.br/wiki/AntesDePerguntar

    <*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

    <*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com
    <mailto:python-brasil%2Bunsu...@googlegroups.com>

    ---
    Você recebeu essa mensagem porque está inscrito no grupo "Python
    Brasil" dos Grupos do Google.
    Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
    envie um e-mail para python-brasi...@googlegroups.com

Diego Rocha

unread,
Feb 9, 2015, 9:19:11 AM2/9/15
to python...@googlegroups.com
Rodolfo,

Sim, ficou mais enxuto com pyquery!
Se ele conseguir fazer requisições mais complexas (com cookies, por exemplo) cai como uma luva pros meus crawlers! Vou dar uma olhada com calma nele

Atenciosamente,
Diego Rocha

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Rodolfo Carvalho

unread,
Feb 9, 2015, 9:34:14 AM2/9/15
to python...@googlegroups.com
Diego se você trabalha com crawlers mais complexos, eu recomendo fortemente você dar uma olhada no Scrapy[0]. Ele é um framework completo dedicado a crawling / scraping de conteúdo na web, você consegue gerar arquivos em diversos formatos com a saída processada do crawling, pode valer a pena.

Tem um tutorial bem legal aqui: http://blog.siliconstraits.vn/building-web-crawler-scrapy/

[0] http://scrapy.org/

Diego Rocha wrote:

Rodolfo,

Sim, ficou mais enxuto com pyquery!
Se ele conseguir fazer requisições mais complexas (com cookies, por
exemplo) cai como uma luva pros meus crawlers! Vou dar uma olhada com
calma nele

Atenciosamente,
Diego Rocha

2015-02-09 12:08 GMT-02:00 Rodolfo Carvalho <rodol...@gmail.com
<mailto:rodol...@gmail.com>>:


    Pra exemplificar também, segue um gist com pyquery:

    https://gist.github.com/rscarvalho/074a88f0ea4431959931

    Uma coisa que acho interessante em relação ao pyquery é a
    possibilidade que você tem de pesquisar os objetos usando CSS
    selectors, então se você já usa jQuery com JavaScript, não vai ter
    nenhuma dificuldade com pyquery.

    Outra vantagem é que o objeto PyQuery suporta que você passe uma
    url como argumento no construtor, dessa forma você evita ter que
    introduzir mais uma lib (ou lidar com urllib / httplib / urllib2)
    dentro do seu código, se a página que você quer exibir for de
    acesso público.

    Diego Rocha wrote:


    Segue um exemplo simples com requests e beautifulsoup

    https://gist.github.com/diegorocha/7dbf0f4627006aebcdde

    Atenciosamente,
    Diego Rocha

    2015-02-09 11:47 GMT-02:00 Rodolfo Carvalho
    <rodol...@gmail.com <mailto:rodol...@gmail.com>
    <mailto:rodol...@gmail.com <mailto:rodol...@gmail.com>>>:


            ---
            Você recebeu essa mensagem porque está inscrito no grupo
    "Python
            Brasil" dos Grupos do Google.
            Para cancelar inscrição nesse grupo e parar de receber
    e-mails
            dele, envie um e-mail para
    python-brasi...@googlegroups.com
    <mailto:python-brasil%2Bunsu...@googlegroups.com>

            Para mais opções, acesse https://groups.google.com/d/optout.


        --
        --
        ------------------------------------
        Grupo Python-Brasil
    http://www.python.org.br/wiki/AntesDePerguntar

    <*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

    <*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com
    <mailto:python-brasil%2Bunsu...@googlegroups.com>
    <mailto:python-brasil%2Bunsu...@googlegroups.com
    <mailto:python-brasil%252Buns...@googlegroups.com>>

        ---
        Você recebeu essa mensagem porque está inscrito no grupo "Python
        Brasil" dos Grupos do Google.
        Para cancelar inscrição nesse grupo e parar de receber
    e-mails dele,
        envie um e-mail para
    python-brasi...@googlegroups.com
    <mailto:python-brasil%2Bunsu...@googlegroups.com>

Diego Rocha

unread,
Feb 9, 2015, 9:48:30 AM2/9/15
to python...@googlegroups.com
Rodolfo,

Acabou que eu nunca mexi com o Scrapy pq sempre achei ele complicado de mais pra um teste inicial.
Como 90% das vezes que faço crawlers são coisas mais simples, eu achava "uma bazuca pra matar uma formiga" ai comecei fazendo com urllib e regex, mas acabei pulando pra requests e beautifoulsoup, e provavelmente vou passar a usar o pyquery.

Eventualmente eu preciso passar cookies, enviar o header referer, trocar user agent etc (complexidade na requisição que o requests abstrai), mas quase nunca no parse (onde acho que o scrapy ajudaria bem mais).

Vi que o pyquery usa o requests se ele estiver instalado, então vou precisar mudar bem pouco nos códigos que eu já tenho.

Atenciosamente,
Diego Rocha

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

ANascimento

unread,
Feb 9, 2015, 11:01:34 AM2/9/15
to python...@googlegroups.com
Obrigado a todos que responderam minha pergunta, vou dar uma olhada em cada uma das dicas.



Att;
Adailton do nascimento
Reply all
Reply to author
Forward
0 new messages