Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Álvaro Justen
@turicas
table = rows.import_from_html(BytesIO(minha_string))
Rômulo Collopy
@romulocollopy
@turicas ainda não temos xml, né?
Álvaro Justen
@turicas
@romulocollopy, não -- em geral porque XML depende muito do formato, né? "XML" é bastante genérico e não sei se teria muito ganho... mas dá pra fazer (para XMLs mais restritos). Tem algum XML em especial que você precise converter?
Se puder compartilhá-lo eu vejo o que dá pra fazer ;) E se preferir pode criar uma issue no GH (English, please) que discutimos por lá
Rômulo Collopy
@romulocollopy
É complicado mesmo. Comecei a explorar a lib, mas vi que não ia rolar. Precisei fazer um dowload dos dados de votos de deputados em 2015:
https://github.com/romulocollopy/votes
Fiz de qualquer jeito, mas uma hora com paciência, pego esses dados direito.
Elias Tandel Barrionovo
@etandel

Dependendo de o quão "regular" é o XML dá pra "tabelizá-lo".

Ex:

produto:
    preco: 10.0
    disponivel: 1
    nome: "produto foda"
produto:
    preco: 999.0
    disponivel: 0
    nome: "produto nao muito foda"

viraria

preco disponivel nome
10.0 1 "produto foda"
999.0 0 "produto nao muito foda"
Mas fazer isso de forma automática pode não ser tão simple
s/automática/genérica
Talvez trabalhar nos dois últimos níveis do XML: Cada repetição do penúltimo nível é uma linha, as tags do último são colunas (o que fazer quando uma tag não aparece)?
Não sei se muitos XMLs se encaixariam bem nesse formato.
Isso ignorando atributos
Elias Tandel Barrionovo
@etandel
Provavelmente não seria tão útil sem uma camada de transformação na frente, tipo um XSLT.
Elias Tandel Barrionovo
@etandel
Daria pra fazer um plugin assim: dado um xml e uma camada de transformação opcional (python, xslt ou sei-lá), ele cria uma Table. E na hora de salvar ele salva o XML bruto ou usa uma camada de transformação opcional de saída.
Walmir
@py3in
Olá Alvaro e demais. Estou em python 2.7 e em breve vou migrar para 3. Se usar a rows vai necessitar mudar já para 3 eu vou tentar. O que estou aprendendo e tentando fazer:
E fiquei interessado em como recuperar dados de sites para uso em redes sociais

Resolvi tentar fazer um artigo completo de passo a passo para usar frases em redes sociais.

Já que não sei nada, fui procurando estudar e não está sendo fácil.

Este tutorial pretende mostrar como foram esses passos e como fui ajudado

para conseguir completar esta missão.

Inicialmente iria fazer tudo com Scrapy, mas mudei de ideia após conhecer o

Splinter do @andrewsmedina http://splinter.readthedocs.org/en/latest/index.html

Pesquisando não encontrei nenhum passo a passo para formatar e recuperar os

dados de frases. Embora tenha visto outros exemplos similares.

Mas não encontrei nenhum feito do zero com passo a passo.

Então segue a análise.

ops, copiei do e-mail e parece que muda a fonte sorry...

Análise

Cerca de 2279 frases curtas curtas frases.
O que pegar:
a) A frase em si.
b) Nome do Author
c) link para o nome do autor.
d) id_mensagem
Salvar em 3 dicionários: arquivos texto
a) frases.dic : formato nome autor : , frase , autor , id_imagem
b) Autores.dic : formato nome autor: , link_do_autor , nome_autor
c) imagens.dic: formato id_mensagem: link ou arquivo imagem

Agora igual a um cachorro que caiu da mudança , ver se consigo fazer.

Arquivo bruto:

Recuperar todas as frases, autores e links para páginas dos autores/ imagem

Quando fazer o download da imagem é que não descobri.

Gerar uma lista só com os nomes de autores e links de suas págians.
Salvar em arquivo

Gerar uma lista só com frases e nome do autor
Salvar em arquivo.

Tudo que preciso está aqui.

<div class="phrases-list"

"""

usando splinter eu viajo no site e recupero as infos.
divs = browser.find_by_tag("div")
Está tudo armazenado nesta var divs e seria aí que iria entrar com a rows para usar tudo como tabela
Se entendi correto, a proposta da rows é conseguir uma maneira uniforme para tratar dados que vem de várias fontes e todas serão tratadas em forma de tabelas. Se for isso, é o que vou investir para conseguir montar os dados e o artigo.
Walmir
@py3in
Obrigado pela atenção. Se não for pra fazer assim, por favor, me diga como proceder para enviar duvidas
Walmir
@py3in
Aqui vou documentando o aprendizado e erro bobos que encontrei mas que pode acontecer com quem for testar no futuro. https://gist.github.com/py3in/55bb4392c0009c3c65db
Álvaro Justen
@turicas
@etandel, maneira a ideia! Eu não manjo tanto de XSLT e não tenho nenhum caso específico de uso para isso. Se você ou o @romulocollopy tiverem tempo/vontade para tocar isso seria legal demais =D
Álvaro Justen
@turicas
@romulocollopy fiz um pequeno script para baixar, parsear e salvar os dados que você precisa já num CSV (depois de jogá-los numa rows.Table). Ficou bem simples e intuitivo (na minha visão): https://gist.github.com/turicas/dd7fbac2960223caaa90
@etandel @romulocollopy o lance do XML/XSLT tem a ver com a operação rows.operations.transform: https://github.com/turicas/rows/blob/develop/rows/operations.py#L55
@py3in a biblioteca funciona muito bem para dados tabulares. No caso de HTML, eles devem estar entre <table> ... </table> (só funciona para esses casos, na versão atual). O HTML que você está tentando parsear não possui <table> para as frases, então talvez seja melhor usar outro formato.
Walmir
@py3in
Agora entendi @Turicas . Obrigado.
Toda ajuda é bem vinda até porque sou iniciante no assunto.
Álvaro Justen
@turicas
Version 0.2.0 was released: https://pypi.python.org/pypi/rows/0.2.0
Álvaro Justen
@turicas
Version 0.2.1 released on 2016-08-10 (forgot to mention here, sorry): https://pypi.python.org/pypi/rows/0.2.1
Davi Oliveira
@arloc
bom dia @turicas
Álvaro Justen
@turicas
@arloc opa! conexão não está muito boa aqui. me avisa o número da issue que você for pegar (comenta lá no GitHub) pra gente saber aqui quem tá fazendo o que :)
Anna Cruz
@annacruz
@turicas Vou fazer um pull request aqui da issue que eu tô fazendo, mas é um pull request preliminar, só pra ir já colhendo feedback das paradas
Álvaro Justen
@turicas
@annacruz beleza! Foi mal não ter te respondido antes, não recebi a notificação
TrishaChetani
@TrishaChetani
hii
I am looking for help from someone
i wanted to read a csv based on column2 , if matches print the row
Álvaro Justen
@turicas
@Trisha1212 hey! One quick solution is just read everything and, inside a for loop, filter the rows you're going to print
Something like this:
import rows
table = rows.import_from_csv('filename.csv')
for row in table:
    if row.column2 == 'somevalue':
        print(row)
Guillermo Colmenero
@narrowfail
hello guys ;)
Álvaro Justen
@turicas
@narrowfail hi! will merge your PR soon :)
Guillermo Colmenero
@narrowfail
awesome @turicas ! :P
Felipe de Morais
@lipemorais
Estou tentando ajudar o Cuducos na seguinte issue:turicas/rows#230
Vi que ele começou a fazer alguma coisa aqui:cuducos/rows@48293bf
image.png
Isso é o que rola quando eu tento rodar os somente esses testes. :(
Fiz uma busca pela internet por esse esso mas não consegui resolver ainda, estou usando Ubuntu 17.04 e python 3.6.2
Felipe de Morais
@lipemorais
Resolvi o problema! Quando instalei o meu pyhon através do pyenv não tinha a lib liblzma-dev instalada, tive que instalar ela e reinstalar as minha versões de python. :)