好吧,我正在学习网页搜索并且学习某些东西的最佳方式是通过实际操作。我对Java很满意,因此我选择Jsoup,这是一个网络报废库。我计划刮谷歌,但我知道它的结果source。谷歌搜索的结果似乎很容易,但我发现很难标识所有显示的内容,这是不可能的,因为大部分内容都是动态的source,Google通过使用一堆客户端JavaScript生成页面。我放弃了搜索导致这里使用下面的代码如何在Java中检索“检查的源代码”(Google chrome)?
package JsoupPrac;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class GoogleScrapper {
public static void main(String[] args) throws IOException{
Document doc;
try{
doc = Jsoup.connect("https://www.google.co.in/search?as_q=&as_oq=query&as_eq=&as_nlo=&as_nhi=&lr=lang_en&cr=countryCA&as_qdr=all&as_sitesearch=&as_occt=any&safe=images&tbs=&as_filetype=&as_rights=&gws_rd=cr&ei=4Id1Vs7pC8rQjwOEkbP4CA#lr=lang_en&cr=countryCA&as_qdr=all&tbs=lr:lang_1en%2Cctr:countryCA&q=query")
.userAgent("Mozilla").ignoreHttpErrors(true).timeout(0).get();
Elements links = doc.select("ol[class=g]");
for (Element link : links) {
Elements titles = link.select("h3[class=r]");
String title = titles.text();
Elements bodies = link.select("span[class=st]");
String body = bodies.text();
System.out.println("Title: "+title);
System.out.println("Body: "+body+"\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
因此,与上面的代码,并与
a[href]迭代有点和寻找
abs:href我能得到的所有URL的名单。
现在我发现的困难是获取搜索结果页面上的所有可用内容,该内容在源代码中不可用,但可以通过inspect元素找到。所以我的问题是,有没有一种方法(可能是第三方)收集我们在使用Java检查任何网页时获得的所有源代码。
你确定''所有的源代码''不是已经从scraping返回?我无法想象为什么JSoup会过滤HTML结果中的任何内容。 –
那么所有的代码是不可用的,因为它是由java脚本 – silverFoxA