gpt4 book ai didi

java - 如何在 Java 中检索 "inspected source code"(谷歌浏览器)?

转载 作者:行者123 更新时间:2023-11-30 08:43:00 25 4
gpt4 key购买 nike

好吧,我正在学习Web Scraping,而学习某些东西的最佳方式就是实际操作。我对 Java 很满意,因此我选择 Jsoup ,这是一个网络抓取库。尽管我知道它的结果,但我计划使用 Scraping Google source .抓取 Google 结果似乎很容易,但我发现很难抓取所有显示的内容,这是不可能的,因为其中大部分是动态的 source ,Google 通过使用一堆客户端 JavaScript 生成页面来做到这一点。我在这里使用以下代码抓取了搜索结果

 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 GoogleScraper {

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 元素找到。所以我的问题是,有没有一种方法(也许是第 3 方)来收集我们在使用 Java 检查 Google Chrome 浏览器中的任何网页时获得的所有源代码

最佳答案

is there a way (maybe 3rd party) to collect all the source code that we get when we inspect any web page in Google Chrome using Java.

是的,我们可以做到这一点 - 通过 selenium 自动化一个真正的浏览器.

初始化驱动程序对象,导航到 URL 并获取 driver.getPageSource() :

WebDriver driver = new ChromeDriver();
driver.get(url);

// sometimes here we might also need to wait for the page to load

System.out.println(driver.getPageSource());

您可以将 selenium 返回的页面源提供给 Jsoup,但请注意 selenium 本身在定位元素方面非常强大 - 您可能甚至不需要单独的 HTML 解析器。

关于java - 如何在 Java 中检索 "inspected source code"(谷歌浏览器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com