2012-04-14 89 views
0

我写了这个代码:2.9的HtmlUnit罐子张贴评论

import com.gargoylesoftware.htmlunit.BrowserVersion; 
import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlForm; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; 
import com.gargoylesoftware.htmlunit.html.HtmlTextArea; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* 
* @author user 
*/ 
public class YouTubeComment { 

public static void main(String[] args) { 
    boolean f = YouTubeLogin.login(); 
    try { 
     if (f) { 
      WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6); 
      webClient.setRedirectEnabled(true); 
      webClient.setJavaScriptEnabled(false); 
      HtmlPage firstPage = webClient.getPage("http://www.youtube.com/watch?v=kqDacBDoVM4&feature=related"); 
      List<HtmlForm> forms = new ArrayList(); 
      forms = (List<HtmlForm>) firstPage.getForms(); 
      HtmlForm form = firstPage.getForms().get(1); 

      HtmlTextArea commentArea = (HtmlTextArea)form.getTextAreaByName("comment"); 
      commentArea.setText("good"); 
     HtmlSubmitInput submitButton =(HtmlSubmitInput)form.getInputByName(""); 
      HtmlPage pageAfterPost = (HtmlPage) submitButton.click(); 
     } else { 
      System.out.println("Sorry..! Login is not successful"); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

}

这个应用程序可以登录到YouTube帐户的用户名和密码。
我想写一些代码,在成功登录后发布评论。
请帮忙。

+0

您能否至少张贴您想发表评论的网址? – 2012-04-14 08:42:54

+0

@Guillaume Polet,http://www.youtube.com/watch?v = kqDacBDoVM4&feature = related – user1319054 2012-04-14 08:44:24

+0

请原谅我的要求,但有没有一些您想要这样做的正当理由?如果这只是一个巨大的垃圾邮件引擎,我不敢提供帮助。 – theJollySin 2012-04-15 01:50:08

回答

0

好吧,所以你应该试着用Firefox上的Firebug来查看页面的HTML内容,看看有哪些字段用来发表评论。

从我所看到的,你需要找到一个名为'comments-view'的div。有一点在该div深化,有一个形式采取行动/comment_servlet?add_comment=1。然后你应该填写textarea评论(它的名字属性设置为'comment')。最终,你需要找到“发布”按钮并点击它。

+0

通过编写此代码: HtmlForm form = firstPage.getFormByName(“/ comment_servlet?add_comment = 1”); 其抛出异常, com.gargoylesoftware.htmlunit.ElementNotFoundException:的ElementName = [表格]的attributeName = [名称]的AttributeValue = [?/ comment_servlet add_comment = 1] 在com.gargoylesoftware.htmlunit.html.HtmlPage.getFormByName (HtmlPage.java:562) at htmlunitexample.YouTubeComment.main(YouTubeComment.java:32) – user1319054 2012-04-14 10:01:27

+0

plz帮我理清这个问题.. – user1319054 2012-04-14 10:32:42

+0

表单没有名字,它只作为一个动作和类,它是不足以找到它。你可以做的是找到id为'comments-view'的div,并在里面找到表单,使用'getHtmlElementsByTagName'(应该只有一个) – 2012-04-14 10:50:44