簡體   English   中英

使用Jsoup解析SERPS中的搜索描述(Google結果)

[英]Using Jsoup to parse search descriptions in SERPS (Google Results)

每當我嘗試從Google搜索結果中抓取搜索內容時,我都會遇到問題。 我正在使用Jsoup提取HTML代碼,但是無法從所需的網頁中提取信息。 我旨在達到標題下信息的描述。 這是我的代碼:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;


public class internetSearch {
    public void retrieveFileInfo(String pulling) {
        Document doc;
        try {
            String proxyAdress = "1.2.3.4";
            int proxyPort = 1234;
            Proxy proxy = new Proxy(Proxy.Type.HTTP,       InetSocketAddress.createUnresolved(proxyAdress, proxyPort));

            doc = Jsoup
                    .connect(pulling)
                    .userAgent("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)")
                    .header("Content-Language", "en-US")
                    .timeout(0)
                    .get();

            System.out.println(doc.toString());
            Elements links = doc.select("div[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();
        }
    }
}

我在網絡上使用了許多資源來獲取代碼。 過去,我也使用硒,但無濟於事。

我一直在搜索我的結果以找到它所在的類“ .st”(在h3,span,.st中),但沒有得出結論。

僅僅是Google在整理代碼,還是我缺少一些重要的東西?

這是estivate的解決方案(這是具有與JSoup兼容的Annotations的Java DOM解析器)

Document doc = // here your JSoup document grabbing

EstivateMapper2 mapper = new EstivateMapper2()

List<GoogleResult> results = mapper.mapToList(doc, GoogleResult .class);

GoogleResult的定義如下:

@Select("div.g")
public class GoogleResult  {

    @Text(select = "h3.r")
    public String title;

    @Text(select = "div.s cite")
    public String link;

    @Text(select = "span.st")
    public String body;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM