2015-12-06 2 views
1

Я использую HtmlUnit и пытается найти в Google Scholar затем получить элемент BibTeX, выполнив следующие действия:Нажмите ссылку, используя HtmlUnit в Google Scholar

1.Go в Google Scholar.

2.type имя файла, который я хочу найти.

3. Щелкните ссылку «cite», затем появится маленькая коробка.

4.в маленькой коробке я хочу нажать «import to bibtex» и получить текст.

, например, вы можете посмотреть на этой странице и попробовать: https://scholar.google.com/scholar?q=internet+of+things+for+smart+cities&btnG=&hl=en&as_sdt=0%2C5

Я был в состоянии получить доступ к странице поиска, но я не мог выполнить другие действия. Это мой код

WebClient webClient = new WebClient(BrowserVersion.CHROME); 
    HtmlPage page = webClient.getPage("https://scholar.google.com/"); 

    HtmlInput searchBox = page.getElementByName("q"); 
    searchBox.setValueAttribute("internet of things for smart cities"); 


    HtmlButton googleSearchSubmitButton = page.getElementByName("btnG"); 
    page = googleSearchSubmitButton.click(); 

    HtmlAnchor anchor = page.getAnchorByName("Cite"); 
    page = anchor.click(); 

    System.out.println(page.asText()); 

    webClient.close(); 

Любая помощь?

ответ

1

Вот начало того, что вы пытаетесь сделать:

WebClient webClient = new WebClient(BrowserVersion.CHROME); 
    webClient.getOptions().setJavaScriptEnabled(true); 
    webClient.getOptions().setThrowExceptionOnScriptError(false); 
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 

    HtmlPage page = webClient.getPage("https://scholar.google.com/"); 

    HtmlInput searchBox = (HtmlInput) page.getElementById("gs_hp_tsi"); 
    searchBox.setValueAttribute("internet of things for smart cities"); 

    HtmlButton googleSearchSubmitButton = page.getElementByName("btnG"); 
    page = googleSearchSubmitButton.click(); 

    HtmlAnchor anchor = page.getAnchorByText("Cite"); 
    anchor.click(); 

    webClient.waitForBackgroundJavaScript(5000); 

    HtmlAnchor linkBibTex = page.getAnchorByText("BibTeX"); 

    TextPage neededPage = linkBibTex.click(); 

    System.out.println(neededPage.getContent()); 

    webClient.close(); 
+0

Отлично! это сработало :) Большое спасибо. – Zayed

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