Читать страницу Twitter с Java

Я хотел бы прочитать содержимое твита с Java, используя общедоступную ссылку этого твита, например:

http://twitter.com/FoodRhythms/status/461201880354271232/photo/1

Я использую ту же процедуру, что и для чтения контента с других типов страниц:

String XMLstring = "";
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

String inputLine;

while ((inputLine = in.readLine()) != null)
    XMLstring += inputLine;
in.close();

Однако, в то время как с другими страницами это работает, при чтении ссылок Twitter возвращаемый контент пуст (объект BufferedReader не содержит ни одной строки).

Любой намек на это?


person Eleanore    schedule 28.07.2014    source источник


Ответы (3)


Вы подходите к проблеме ненужным сложным способом. Вы должны использовать библиотеку анализатора HTML, такую ​​как Jsoup, для анализа URL-адреса его содержимого.

Пример будет следующим:

String url = "https://twitter.com/FoodRhythms/status/461201880354271232/photo/1";
Document doc = Jsoup.connect(url).get();
Element tweetText = doc.select("p.js-tweet-text.tweet-text").first();
System.out.println(tweetText.text());

который будет выводить

Miso-Glazed Japanese Eggplant 

Таким же образом вы можете выбрать любой элемент!

person Daniel B    schedule 28.07.2014

Для чтения из твиттера требуется аутентификация oAuth, вам нужно будет придерживаться библиотеки твиттера для java, чтобы получить необходимые данные.

Надеюсь это поможет..!

http://www.javacodegeeks.com/2012/03/twitter-api-on-your-java-application.html

person ashwinsakthi    schedule 28.07.2014
comment
Он у меня есть, так как я сейчас пью твиты из пожарного шланга. Однако мне непонятно, как читать содержимое URL-адреса, когда доступен OAuth. В качестве единственной ссылки на твит у меня есть только этот URL. Как это использовать? - person Eleanore; 28.07.2014

Проблема с вашим кодом прямо сейчас заключается в том, что вы пытаетесь получить доступ к твиттеру через http, где происходит неявное перенаправление на https. Используя свой точный код, измените URL-адрес на https, и все должно работать нормально.

person mistahenry    schedule 28.07.2014