Pobranie informacji ze strony

0

Witam,
Mam program który pobiera informacje ze strony filmweb.pl Problem jest w tym iz strona ta czesto wrzuca na powitanie reklame nad która jest link "przejdź do filmweb" Link jest javascriptowy. Czy jest jakis sposob ze "ominac" ta reklame?

0

Najlepiej wyrażeniem regularnym odfiltrować tylko to co Ciebie interesuje. W ten sposób z automatu ominiesz wszystkie nieinteresujące śmieci. Zapoznaj się z regexp.

0

Wykrywaj reklamę i przeładowuj stronę.

0

<a style="float: left; width: 250px; padding-top: 10px; font-family: Verdana,Tahoma,Geneva,sans-serif; font-style: normal; font-variant: normal; font-weight: bold; font-size: 17px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(255, 255, 255); display: block;" href="http://www.filmweb.pl/" onclick="link();return false;">przejdź do Filmweb.pl</a> to jest link na ktory musze przejsc. jak go podac do kodu programu. tzn jak wykonac javascriptowa funkcje.

0

Może ktoś wyjaśnić jakie w Javie zastosowanie mają serverlety, sockety i takie biblioteki jak httpclient w takich aplikacjach w których chce się utworzyć połączenie HTTP, FTP. Czy serverlety działają tylko na serwerze, czy tez po prostu można z nich korzystać do komnikacji z serwerem, czy może to być strona oparta na PHP , czy tylko na Javie ? Czy musze się przerzucić na sockety, aby wysłać informacje do kilku pól na raz?

Ja mam jescze bardziej podstawowy problemik. Szukałem bibliotek , które umożliwią interakcje ze stronami http://hc.apache.org/downloads.cgikie obiekty, jakimi metodami obsłużyć (np. Jak 'kliknac" w javie na przycisk"). A dodatkowo zaciołem się na próbie użycia metody POST i GET, ponieważ wszystko działa osobno, na wczytanych do konsoli stronach widac zmienione parametry danych pól, ale kiedy daje POST, potem GET to tekst wpisany w pole za pomocą POST znika, nie za bardzo wiem dlaczego, nie wydaje mi się bym zrywał polecenie, robie to na końcu, może to spowodowane tym, ze strona nie 'nadąża' ?
Biblioteki są tutaj: http://hc.apache.org/downloads.cgi, używam w tej chwili wersji 3

Mój kod, najpierw wysyłam dane do tłumaczenia, wybieram język i próbuje jakoś 'wcisnąc' przycisk translate (nie zabardzo wiem jak to się robi, jak 'klikac' na link).

package http_java;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import java.io.FileOutputStream;
import java.io.IOException;


public class PostExample {
 public static void main( String[] args ) {
    String url = "http://babelfish.yahoo.com";
    HttpClient client = new HttpClient();
    PostMethod method = new PostMethod( url );
    HttpMethod jezyk = new GetMethod(url);
    HttpMethod OK = new GetMethod(url);
    NameValuePair nvp1= new NameValuePair("lp","en_de");
    NameValuePair nvp2= new NameValuePair("btnTrTxt","Translate");

   try {



    // Configure the form parameters
     method.addParameter( "trtext", "Hello, How are you? What is your name?" );
  // Execute the POST method
    int statusCode1 = client.executeMethod( method );
    if( statusCode1 != -1 ) {
            String contents = method.getResponseBodyAsString();
          // System.out.println( contents );
            System.out.println(method.getResponseBodyAsString());
            byte [] res  = method.getResponseBody();
 //write to file
            FileOutputStream fos= new FileOutputStream("donepage.html");
            fos.write(res);
                          }
   }
//   }
   catch( Exception e ) {
    e.printStackTrace();

   }

            jezyk.setQueryString(new NameValuePair[]{nvp1});
   
     try{
           int statusCode2 = client.executeMethod(jezyk );

            System.out.println("QueryString>>> "+jezyk.getQueryString());
            System.out.println("Status Text>>>"
                  +HttpStatus.getStatusText(statusCode2));

            //Get data as a String
           System.out.println(jezyk.getResponseBodyAsString());

            //OR as a byte array
            byte [] res  = jezyk.getResponseBody();


            //write to file
            FileOutputStream fos= new FileOutputStream("donepage1.html");
            fos.write(res);

           
           
        }
      catch(IOException e) {
            e.printStackTrace();
        }


        
       
         OK.setQueryString(new NameValuePair[]{nvp2});
     try{
            int OKstatusCode = client.executeMethod(OK);

            System.out.println("QueryString>>> "+OK.getQueryString());
            System.out.println("Status Text>>>"
                  +HttpStatus.getStatusText(OKstatusCode));

            //Get data as a String
           
          if( (OKstatusCode    != -1) ) {
           String contents = method.getResponseBodyAsString();
           System.out.println(OK.getResponseBodyAsString());

            //OR as a byte array
            byte [] res  = OK.getResponseBody();


            //write to file
            FileOutputStream fos= new FileOutputStream("donepage2.html");
            fos.write(res);

           method.releaseConnection();
           System.out.println( contents );
          }


        }
      catch(IOException e) {
            e.printStackTrace();
        }


           
    }
   } 

1 użytkowników online, w tym zalogowanych: 0, gości: 1