我使用Jsoup获取外部html文档,但Jsoup只获得了html documnet的一半。这是我的http://www.myanmarinternetjournal.com/content/8287
我可以知道需要添加什么标题吗?
谢谢Alex
protected String doInBackground(String... urls) {
try {
String data = "";
Document doc = null;
doc = Jsoup.connect(urls[0])
.header("Accept-Encoding", "gzip, deflate")
.header("Content-Type", "application/x-javascript; charset=utf-8")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.get();
Log.e("RssDetailsActivity", doc.toString());
Elements elements = doc.getElementsByClass("content clearfix");
for(Element element : elements) {
data += element.outerHtml();
data += "<br/>";
}
return data;
} catch (Exception e) {
Log.e("RssDetailsActivity", e.getMessage());
}
return null;
}
答案 0 :(得分:1)
以下是我对问题的回答。
Elements elements = doc.getElementsByClass(“content clearfix”);
我正在添加错误的类。我只应该把“内容”。
Elements elements = doc.getElementsByClass(“content”);
之后我得到了div部分。我只是意识到调试模式下的doc值在eclipse中被切断了。
答案 1 :(得分:0)
如果您使用的是chrome,请右键单击并选择“Inspect element”。将有一个名为“网络”的标签。寻找能够为您提供html内容的正确电话。单击后,您应该能够看到请求标头和响应标头。以下是Request标题的片段
GET /content/8287 HTTP/1.1
Host: www.myanmarinternetjournal.com
Connection: keep-alive
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Pragma: no-cache
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: has_js=1; __qca=P0-306326763-1379867776215; __utma=26494267.256134586.1379867776.1379867776.1379867776.1; __utmb=26494267.1.10.1379867776; __utmc=26494267; __utmz=26494267.1379867776.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=168333117.107878997.1379867784.1379867784.1379867784.1; __utmb=168333117.1.10.1379867784; __utmc=168333117; __utmz=168333117.1379867784.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _pk_id.6.0010=447ba0a1b9e46537.1379867784.1.1379867784.1379867784.; _pk_ses.6.0010=*; __unam=688c865-14146878987-1b969d4c-1
使用此填充更多标头参数到jsoup.connect()调用。 你可以在firefox上使用firebug扩展名做同样的事情。