摘要:是一個開源的簡單的爬蟲框架主要是通過將獲取的網頁信息封裝成來進行爬取信息。作者也是一個新手。這篇文章只是提供一個入門的思路。開啟多少個線程抓取隔多長時間抓取次部分。是用來抓取元素的連接是指獲取得到的內容。并且這個類需要實現。
Gecco是一個開源的簡單的java爬蟲框架
主要是通過將獲取的網頁信息封裝成HtmlBean來進行爬取信息。
作者也是一個新手。這篇文章只是提供一個入門的思路。
如果有不對的地方,還望指正。
咱們來爬取一下明星的信息。http://ku.ent.sina.com.cn/sta...
一些解釋性的東西我大都寫到注釋里了。
1、入口程序
public class StarIndexPage{ public static void main(String[] args) { String url = "http://ku.ent.sina.com.cn/star/search&page_no=1"; //想要爬取的網站的首頁地址 HttpGetRequest start = new HttpGetRequest(url); //獲取網站請求 start.setCharset("UTF-8"); GeccoEngine.create() //創建搜索引擎 .classpath("com.yue.gecco") //要搜索的包名,會自動搜索該包下,含@Gecco注解的文件。 .start(start) .thread(5)//開啟多少個線程抓取 .interval(2000) //隔多長時間抓取1次 .run(); } }
2、HtmlBean部分。Gecco用到的注解部分很多。
@Gecco(matchUrl = "http://ku.ent.sina.com.cn/star/search&page_no={page}",pipelines {"consolePipeline","starIndexPagePipeline"}) //matchUrl是爬取相匹配的url路徑,然后將獲取到的HtmlBean輸出到相應的管道(pipelines)進行處理。這里的管道是可以自定義的。 public class StarIndexPage implements HtmlBean { private static final long serialVersionUID = 1225018257932399804L; @Request private HttpRequest request; //url中的page參數 @RequestParameter private String page; //首頁中的明星板塊的集合,li的集合 @HtmlField(cssPath = "#dataListInner > ul >li") private ListlsStarDetail; //@HtmlField(cssPath = "#dataListInner > ul >li")是用來抓取網頁中的相應網頁數據,csspath是jQuery的形式。 //cssPath獲取小技巧:用Chrome瀏覽器打開需要抓取的網頁,按F12進入發者模式。然后在瀏覽器右側選中該元素,鼠標右鍵選擇Copy–Copy selector,即可獲得該元素的cssPath //當前的頁碼,如果當前的是有很多頁碼的話,可以通過獲取當前頁碼還有總頁碼,為繼續抓取下一頁做準備 //@Text是指抓取網頁中的文本部分。@Html是指抓取Html代碼。@Href是用來抓取元素的連接 @Ajax是指獲取Ajax得到的內容。 @Text @HtmlField(cssPath = "#dataListInner > div > ul > li.curr a") private int currPageNum; //相應的Getter和Setter方法...省略 }
StarDetail的HtmlBean部分
public class StarDetail implements HtmlBean{ /*//明星的照片 @Image("src") @HtmlField(cssPath = "a > img") prie String PhotoString;*/ //明星的名字 @Html @HtmlField(cssPath ="div > div > h4") private String starNameHtml; //明星的性別 @Text @HtmlField(cssPath = "div > p:nth-child(2)") private String starSex; //明星的職業 @Html @HtmlField(cssPath = "div > p:nth-child(3)") private String professionHtml; //明星的國籍 @Text @HtmlField(cssPath = " div > p:nth-child(4)") private String nationality; //明星的出生日期 @Text @HtmlField(cssPath = "div > p.special") private String birthday; //明星的星座 @Text @HtmlField(cssPath = "div > p:nth-child(6)>a") private String constellation; //明星的身高 @Text @HtmlField(cssPath = "div > p:nth-child(7)") private String height; ...省略相應的set和get方法... }
3、相應的pipeline部分。這部分主要是對獲取的網頁元素進行業務處理。也可以對數據進行持久化。
@PipelineName("starIndexPagePipeline") //@pipelineName 標簽指定了pipline的名字。并且pipeline這個類需要實現Pipleline。 public class StarIndexPagePipeline implements Pipeline { @Override public void process(StarIndexPage starIndexPage) { List lsStarDetail = starIndexPage.getLsStarDetail(); StringBuilder inputText = new StringBuilder(); for (StarDetail starDetail :lsStarDetail){ String professionHtml=starDetail.getProfessionHtml(); String starNameHtml=starDetail.getStarNameHtml(); Document docName=Jsoup.parse(starNameHtml); String starName=docName.getElementsByTag("a").attr("title").trim(); String starSex = starDetail.getStarSex().trim(); Document doc = Jsoup.parse(professionHtml); String profession="未知"; //有不含a標簽的,不含a標簽的都是未知的 if(professionHtml.indexOf(" 解析工具推薦
Jsoup
中文文檔:http://www.open-open.com/jsoup/
jsoup是一個解析Html的開源工具。其他可供參考:官方例子:http://www.geccocrawler.com/d...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67317.html
摘要:到了這個時候,我們已經可以把京東的分類首頁的手機模塊給抓取下來,并且保存成。 GeccoSpider爬蟲例子 前些天,想要用爬蟲抓取點東西,但是網上很多爬蟲都是使用python語言的,本人只會java,因此,只能找相關java的爬蟲資料,在開源中國的看到國內的大神寫的一個開源的爬蟲框架,并下源碼研究了一下,發現跟官網描述的一樣,夠簡單,簡潔易用!有興趣的朋友可以到官網了解下! 我這個例...
摘要:到了這個時候,我們已經可以把京東的分類首頁的手機模塊給抓取下來,并且保存成。 GeccoSpider爬蟲例子 前些天,想要用爬蟲抓取點東西,但是網上很多爬蟲都是使用python語言的,本人只會java,因此,只能找相關java的爬蟲資料,在開源中國的看到國內的大神寫的一個開源的爬蟲框架,并下源碼研究了一下,發現跟官網描述的一樣,夠簡單,簡潔易用!有興趣的朋友可以到官網了解下! 我這個例...
摘要:爬蟲又一個爬蟲實現原文簡介小強當時不知道為啥選了這么個名字,又長又難記,導致編碼的過程中因為單詞的拼寫問題耽誤了好長時間。我是一個小強爬蟲線程數健壯說到健壯,這里主要體現在以下幾個方面應對封鎖這里我們使用動態代理來解決這個問題。 cockroach 爬蟲:又一個 java 爬蟲實現 原文 簡介 cockroach[小強] 當時不知道為啥選了這么個名字,又長又難記,導致編碼的過程中因為單...
摘要:的官方網址為,其使用手冊網址為本次分享將實現的功能為利用爬取某個搜索詞語暫僅限英文的百度百科的介紹部分,具體的功能介紹可以參考博客爬蟲自制簡單的搜索引擎。 ??Jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。Jsoup的官方網址為: https:...
摘要:理解迭代對象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個對象的內容是后端掘金黑魔法之協程異步后端掘金本文為作者原創,轉載請先與作者聯系。 完全理解關鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習慣,可能會看到一些優秀的代碼經常出現帶有 with 關鍵字的語句,它通常用在什么場景呢?今天就來說說 with 和 上下...
閱讀 3060·2021-11-18 10:02
閱讀 3327·2021-11-02 14:48
閱讀 3391·2019-08-30 13:52
閱讀 555·2019-08-29 17:10
閱讀 2083·2019-08-29 12:53
閱讀 1403·2019-08-29 12:53
閱讀 1027·2019-08-29 12:25
閱讀 2164·2019-08-29 12:17