2013-09-30 3 views
0

Я новичок в программировании и очень мало знаю о http, но я написал код для очистки веб-сайта на Java и столкнулся с проблемой, что мой код сбрасывает «получить» http-звонки (на основе ввода URL-адреса) но я не знаю, как делать скребущие данные для «post» http-вызова.Как очистить сайт, http получить vs http сообщение?

После краткого обзора http, я считаю, мне нужно будет симулировать браузер, но не знаю, как это сделать на Java. The website Я пытался использовать.

Поскольку мне нужно очистить исходный код для всех страниц, URL-адрес не изменяется при нажатии каждой следующей кнопки. Я использовал firebug Firefox, чтобы посмотреть, что происходит, когда нажимается кнопка, но я не знаю всего, что я ищу.

Мой код, чтобы очистить данные по состоянию на сейчас:

public class Scraper { 
    private static String month = "11"; 
    private static String day = "4"; 
    private static String url = "http://cpdocket.cp.cuyahogacounty.us/SheriffSearch/results.aspx?q=searchType%3dSaleDate%26searchString%3d"+month+"%2f"+day+"%2f2013%26foreclosureType%3d%27NONT%27%2c+%27PAR%27%2c+%27COMM%27%2c+%27TXLN%27"; // the input website to be scraped 

    public static String sourcetext; //The source code that has been scraped 

    //scrapeWebsite runs the method to scrape the input URL and returns a string to be parsed. 
    public static void scrapeWebsite() throws IOException { 

    URL urlconnect = new URL(url); //creates the url from the variable 
    URLConnection connection = urlconnect.openConnection(); 
    BufferedReader in = new BufferedReader(new InputStreamReader( 
                   connection.getInputStream(), "UTF-8")); 
    String inputLine; 
    StringBuilder sourcecode = new StringBuilder(); // creates a stringbuilder which contains the sourcecode 

    while ((inputLine = in.readLine()) != null) 
     sourcecode.append(inputLine); 
    in.close(); 
    sourcetext = sourcecode.toString(); 
    } 

Что бы быть лучшим способом пойти о выскабливание все страницы для каждого «пост» называют?

+1

Вам нужно будет очистить все элементы 'form', которые имеют значение атрибута' post' 'method'. Следите за всеми элементами 'input', упорядочивайте их и отправляйте запросы. –

+0

_ «Я новичок в программировании и очень мало знаю об http» _ - вам нужно потратить неделю или две, чтобы читать по HTTP, HTML и современной архитектуре сайта. Скребковые веб-сайты обычно работают только со старыми сайтами, которые не используют Javascript для управления DOM во время презентации. Чтобы «очистить» современный сайт на основе JS, вам нужно будет эмулировать полнофункциональный браузер в вашем коде. Большинство элементов пользовательского интерфейса могут даже не существовать в потоке HTTP; они будут созданы Javascript в клиентском браузере после начальной загрузки. –

+0

Джим, я пишу это, основываясь на предыдущем коде Ruby, который больше не работает, что эмулирует полнофункциональный браузер. Так что это можно сделать на Java? Если да, то есть набор классов, которые я мог бы прочитать для этого? – cmart

ответ

0

Посмотрите на jersey client interface

Открыть источник каждой страницы и определить структуру URL-адрес для последующих предыдущих страниц затем цикл до конца.

+0

Для моего веб-сайта URL-адрес не изменяется при щелчке следующей страницы – cmart

+0

, если он выполняет вызов ajax для следующей страницы, все еще есть URI (url), который он предварительно формирует, чтобы получить следующую страницу. Самое основное отличие между get и post заключается в том, что параметры в сообщении являются частью тела запроса вместо того, чтобы быть в uri. Просмотрите документацию клиента джерси и посмотрите, как создать почтовый запрос. – Diver

 Смежные вопросы

  • Нет связанных вопросов^_^