[Resolvido] Importar conteúdo de uma página para Java | Resolvido por davidbuzatto  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

Boas.

Eu quero fazer um programa que me importe o conteúdo de uma determinada página (em formato texto) para uma caixa de texto ou uma variável dentro de um programa java para eu depois analisar os dados, isso é possível?

Obrigado e desculpem se a resposta é muito simples ainda não sei muito de java.

This message was edited 1 time. Last update was at 22/04/2010 17:16:45

davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Uma página Web?

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

davidbuzatto wrote:Uma página Web?


Sim do tipo. Eu defino a Wikipedia no enederço www.wikipedia.org e o programa importa todo o texto dessa página para uma String ou String[] de maneira a poder tratar os dados, copiando algo do género:

WIKIPEDIA
Wikipedia
English
The Free Encyclopedia
3 256 000+ articles
日本語
フリー百科事典
669 000+ 記事
Deutsch
Die freie Enzyklopädie
1 054 000+ Artikel
Español
La enciclopedia libre
588 000+ artículos
Français
L?encyclopédie libre
937 000+ articles
Polski
Wolna encyklopedia
690 000+ haseł
Italiano
L?enciclopedia libera
678 000+ voci
Русский
Свободная энциклопедия
525 000+ статей
Português
A enciclopédia livre
560 000+ artigos
Nederlands
De vrije encyclopedie
598 000+ artikelen
Search ? Suchen ? Rechercher ? Szukaj ? Ricerca ? 検索 ? Zoeken ? Buscar ? Busca ? Поиск ? Sök ? 搜索 ? Søk ? Cerca ? Haku ? Пошук ? Hledání ? Keresés ? Ara ? Căutare ? 찾기 ? Serĉu ? Søg ? بحث ? Cari ? Suk ? Tìm kiếm ? Hľadať ? Претрага ? Paie?ka ? חיפוש
100 000+
العربية ? Català ? Česky ? Dansk ? Deutsch ? English ? Español ? Esperanto ? Français ? 한국어 ? Bahasa Indonesia ? Italiano ? עברית ? Lietuvių ? Magyar ? Nederlands ? 日本語 ? Norsk (bokmål) ? Polski ? Português ? Русский ? Română ? Slovenčina ? Српски / Srpski ? Suomi ? Svenska ? Türkçe ? Українська ? Tiếng Việt ? Volapük ? 中文
10 000+
Afrikaans ? Aragonés ? Asturianu ? Kreyòl Ayisyen ? Azərbaycan / آذربايجان ديلی ? বাংলা ? Беларуская (Акадэмічная ·Тарашкевiца ? বিষ্ণুপ্রিযা় মণিপুরী ? Bosanski ? Brezhoneg ? Български ? Чăваш ? Cymraeg ? Eesti ? Ελληνικά ? Euskara ? فارسی ? Frysk ? Gaeilge ? Galego ? ગુજરાતી ? हिन्दी ? Hrvatski ? Ido ? Íslenska ? Basa Jawa ? ქართული ? Kurdî / كوردی ? Latina ? Latvie?u ? Lëtzebuergesch ? Lumbaart ? Македонски ? മലയാളം ? मराठी ? Bahasa Melayu ? नेपाल भाषा ? Norsk (nynorsk) ? Nnapulitano ? Occitan ? Piemontèis ? Plattdüütsch ? Ripoarisch ? Runa Simi ? Shqip ? Sicilianu ? Simple English ? Sinugboanon ? Sloven?čina ? Srpskohrvatski / Српскохрватски ? Basa Sunda ? Kiswahili ? Tagalog ? தமிழ் ? తెలుగు ? ไทย ? اردو ? Walon ? Winaray ? 粵語 ? ?emaitė?ka
1 000+
Bahsa Acèh ? Alemannisch ? አማርኛ ? Armãneashce ? Arpitan ? ܐܬܘܪܝܐ ? Avañe?ẽ ? Bân-lâm-gú ? Basa Banyumasan ? भोजपुरी ? Bikol Central ? Boarisch ? བོད་ཡིག ? Chavacano de Zamboanga ? Corsu ? Deitsch ? ދިވެހި ? Diné Bizaad ? Eald Englisc ? Эрзянь ? Estremeñu ? Fiji Hindi ? Føroyskt ? Furlan ? Gaelg ? Gàidhlig ? 贛語 ? گیلکی ? 文言 ? Hak-kâ-fa / 客家話 ? ʻŌlelo Hawaiʻi ? Հայերեն ? Hornjoserbsce ? Ilokano ? Interlingua ? Interlingue ? Ирон Æвзаг ? ಕನ್ನಡ ? Kapampangan ? Kaszëbsczi ? Kernewek ? ភាសាខ្មែរ ? Коми ? Кыргызча ? Ladino / לאדינו ? Ligure ? Limburgs ? Lingála ? lojban ? Malagasy ? Malti ? Māori ? مصرى ? مازِرونی / Mäzeruni ? Монгол ? ဗမာစာ ? Nāhuatlahtōlli ? Nedersaksisch ? नेपाली ? Nouormand ? Novial ? Олык Марий ? O?zbek ? पाऴि ? Pangasinán ? ਪੰਜਾਬੀ / پنجابی ? پښتو ? Қазақша ? Qırımtatarca ? Rumantsch ? संस्कृतम् ? Sámegiella ? Sardu ? Саха Тыла ? Scots ? Seeltersk ? شاہ مکھی پنجابی ? සිංහල ? Ślůnski ? کوردی ? Tarandíne ? Татарча / Tatarça ? Тоҷикӣ ? Lea faka-Tonga ? Türkmen ? Uyghur / ئۇيغۇرچه ? Vèneto ? Võro ? West-Vlams ? Wolof ? 吴语 ? ייִדיש ? Yorùbá ? Zazaki
100+
Akan ? Аҧсуа ? Авар ? Aymara ? Bamanankan ? Башҡорт ? Bislama ? Chamoru ? Cuengh ? Dolnoserbski ? Emigliàn-Rumagnòl ? Eʋegbe ? Gĩkũyũ ? 𐌲𐌿𐍄𐌹𐍃𐌺 ? Хальмг ? Hausa / هَوُسَا ? Igbo ? ᐃᓄᒃᑎᑐᑦ / Inuktitut ? Iñupiak ? Kalaallisut ? कश्मीरी / كشميري ? Kongo ? ພາສາລາວ ? Mìng-dĕ̤ng-ngṳ̄ ? Mirandés ? Мокшень ? Молдовеняскэ ? Na vosa vaka-Viti ? Dorerin Naoero ? Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ ? Norfuk / Pitkern ? Нохчийн ? ଓଡି଼ଆ ? Afaan Oromoo ? অসমীযা় ? Papiamentu ? Picard ? Ποντιακά ? Къарачай?Малкъар ? Qaraqalpaqsha ? རྫོང་ཁ ? Romani / रोमानी ? Gagana Sāmoa ? Sängö ? Setswana ? سنڌي ? Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ ? Af Soomaali ? SiSwati ? Sranantongo ? Reo Tahiti ? Taqbaylit ? Tetun ? ትግርኛ ? Tok Pisin ? ᏣᎳᎩ ? ᨅᨔ ᨕᨙᨁᨗ ? Xitsonga ? Удмурт ? Tshivenḓa ? isiXhosa ? Zeêuws ? isiZulu
Other languages ? Weitere Sprachen ? Autres langues ? Kompletna lista języków ? 他の言語 ? Otros idiomas ? 其他语言 ? Другие языки ? Aliaj lingvoj ? 다른 언어 ? Ngôn ngữ khác
Wiktionary Wiktionary
Wikinews Wikinews
Wikiquote Wikiquote
Wikibooks Wikibooks
Wikispecies Wikispecies
Wikisource Wikisource
Wikiversity Wikiversity
Wikimedia Commons Commons
Meta-Wiki Meta-Wiki
Wikimedia

Só o texto, sem imagens.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Já posto um exemplo, estou preparando...
O caminho é usar a classe URLConnection.

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Está tudo comentado. Dê uma olhada.



Agora o tratamento são outros quinhentos...

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Então, como vc quer só o texto fica um pouco mais complicado.
Você teria que analisar os dados retornados.

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

davidbuzatto wrote:Então, como vc quer só o texto fica um pouco mais complicado.
Você teria que analisar os dados retornados.


Estive a tentar testar criei no NetBeans um projecto vazio, colei o código e deu os seguintes erros:

run:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
IOException
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
at t.T.getURLData(T.java:30)
at t.T.main(T.java:11)

Qual será a origem destes erros? Eu estou a utilizar neste momento uma internet com proxy, será disso?

Quanto ao tratamento dos dados eu depois faço isso se tiver duvidas coloco mas esta primeira parte era mais importante.

Muito obrigado.
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

Já testei numa ligação sem proxy e funciona, MUITO OBRIGADO davidbuzatto.

Só que neste momento ele retorna o html da página e não o seu texto final. Para retirar os dados que não sejam formatação html talvez a solução passe por ignorar tudo o que esteja dentro de <> correndo o erro de ignorar dados da página (que pode conter <>.

Haverá alguma fora de carregar só o texto sem formatações html ?
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá,

Realmente, como eu disse, volta o código e não somente o texto.
Você pode tentar usar algum parser de html para pegar apenas o que precisa.

Um parser que você pode testar é o JTidy. http://jtidy.sourceforge.net/
Na seção getting started, dê uma olhada em JTidy API. Lá tem as primeiras dicas para você poder utilizar.

[]´s

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

davidbuzatto wrote:Olá,

Realmente, como eu disse, volta o código e não somente o texto.
Você pode tentar usar algum parser de html para pegar apenas o que precisa.

Um parser que você pode testar é o JTidy. http://jtidy.sourceforge.net/
Na seção getting started, dê uma olhada em JTidy API. Lá tem as primeiras dicas para você poder utilizar.

[]´s


Muito obrigado mesmo pela ajuda, foi fundamental. Entretanto hoje já estive a procurar soluções e dei agora mesmo com este site também: http://nalynn.net/articles/2008/01/java_tip_how_get_web_page

Vou já testar o que você (em Portugal normalmente trata-se as pessoas por tu é um bocado estranho escrever você se eu tratar por tu foi esquecimento) me mandou.

Muito obrigado e grande abraço.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá,

Quanto ao você/tu, sem problema
Ví o endereço que você passou e é basicamente o que eu fiz, com outras coisinhas mais.
Teste e veja se funciona

[]´s

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
JPN
Entusiasta Java

Membro desde: 21/04/2010 09:59:22
Mensagens: 16
Offline

davidbuzatto wrote:Olá,
Ví o endereço que você passou e é basicamente o que eu fiz, com outras coisinhas mais.
Teste e veja se funciona

[]´s


Já estive a ver e faz a mesma coisa também com o HTML, já estou noutra a arranjar um código conversor de HTML para texto não deve ser difícil já muita gente deve ter precisado disso. Depois vou é ter problemas com o Proxy pois passo muitas horas num local onde só tenho acesso à net por proxy e o método lá em cima não funciona mas depois vejo isso,

Abraço e mais uma vez muito obrigado.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

De nada

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team