国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

用JAVA做一個(gè)爬蟲(chóng)程序——Gecco

Tony / 1879人閱讀

摘要:是一個(gè)開(kāi)源的簡(jiǎn)單的爬蟲(chóng)框架主要是通過(guò)將獲取的網(wǎng)頁(yè)信息封裝成來(lái)進(jìn)行爬取信息。作者也是一個(gè)新手。這篇文章只是提供一個(gè)入門(mén)的思路。開(kāi)啟多少個(gè)線(xiàn)程抓取隔多長(zhǎng)時(shí)間抓取次部分。是用來(lái)抓取元素的連接是指獲取得到的內(nèi)容。并且這個(gè)類(lèi)需要實(shí)現(xiàn)。

Gecco是一個(gè)開(kāi)源的簡(jiǎn)單的java爬蟲(chóng)框架
主要是通過(guò)將獲取的網(wǎng)頁(yè)信息封裝成HtmlBean來(lái)進(jìn)行爬取信息。
作者也是一個(gè)新手。這篇文章只是提供一個(gè)入門(mén)的思路。
如果有不對(duì)的地方,還望指正。
咱們來(lái)爬取一下明星的信息。http://ku.ent.sina.com.cn/sta...
一些解釋性的東西我大都寫(xiě)到注釋里了。

1、入口程序

public class StarIndexPage{
    public static void main(String[] args) {
    String url = "http://ku.ent.sina.com.cn/star/search&page_no=1"; //想要爬取的網(wǎng)站的首頁(yè)地址
    HttpGetRequest start = new HttpGetRequest(url); //獲取網(wǎng)站請(qǐng)求
    start.setCharset("UTF-8");
    GeccoEngine.create() //創(chuàng)建搜索引擎
               .classpath("com.yue.gecco") //要搜索的包名,會(huì)自動(dòng)搜索該包下,含@Gecco注解的文件。
               .start(start)   
               .thread(5)//開(kāi)啟多少個(gè)線(xiàn)程抓取
               .interval(2000) //隔多長(zhǎng)時(shí)間抓取1次
               .run();
     }
}

2、HtmlBean部分。Gecco用到的注解部分很多。

@Gecco(matchUrl = "http://ku.ent.sina.com.cn/star/search&page_no={page}",pipelines {"consolePipeline","starIndexPagePipeline"})
//matchUrl是爬取相匹配的url路徑,然后將獲取到的HtmlBean輸出到相應(yīng)的管道(pipelines)進(jìn)行處理。這里的管道是可以自定義的。
public class StarIndexPage implements HtmlBean {

private static final long serialVersionUID = 1225018257932399804L;

@Request   
private HttpRequest request;

//url中的page參數(shù)
@RequestParameter
private String  page;


//首頁(yè)中的明星板塊的集合,li的集合
@HtmlField(cssPath = "#dataListInner > ul >li")
private List lsStarDetail;
//@HtmlField(cssPath = "#dataListInner > ul >li")是用來(lái)抓取網(wǎng)頁(yè)中的相應(yīng)網(wǎng)頁(yè)數(shù)據(jù),csspath是jQuery的形式。
//cssPath獲取小技巧:用Chrome瀏覽器打開(kāi)需要抓取的網(wǎng)頁(yè),按F12進(jìn)入發(fā)者模式。然后在瀏覽器右側(cè)選中該元素,鼠標(biāo)右鍵選擇Copy–Copy selector,即可獲得該元素的cssPath

//當(dāng)前的頁(yè)碼,如果當(dāng)前的是有很多頁(yè)碼的話(huà),可以通過(guò)獲取當(dāng)前頁(yè)碼還有總頁(yè)碼,為繼續(xù)抓取下一頁(yè)做準(zhǔn)備
//@Text是指抓取網(wǎng)頁(yè)中的文本部分。@Html是指抓取Html代碼。@Href是用來(lái)抓取元素的連接 @Ajax是指獲取Ajax得到的內(nèi)容。
@Text
@HtmlField(cssPath = "#dataListInner > div > ul > li.curr a")
private int currPageNum;

    //相應(yīng)的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;

    //明星的職業(yè)
    @Html
    @HtmlField(cssPath = "div > p:nth-child(3)")
    private String professionHtml;

    //明星的國(guó)籍
    @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;

...省略相應(yīng)的set和get方法...
}

3、相應(yīng)的pipeline部分。這部分主要是對(duì)獲取的網(wǎng)頁(yè)元素進(jìn)行業(yè)務(wù)處理。也可以對(duì)數(shù)據(jù)進(jìn)行持久化。

@PipelineName("starIndexPagePipeline") 
 //@pipelineName 標(biāo)簽指定了pipline的名字。并且pipeline這個(gè)類(lèi)需要實(shí)現(xiàn)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標(biāo)簽的,不含a標(biāo)簽的都是未知的
            if(professionHtml.indexOf("

解析工具推薦
Jsoup
中文文檔:http://www.open-open.com/jsoup/
jsoup是一個(gè)解析Html的開(kāi)源工具。

其他可供參考:官方例子:http://www.geccocrawler.com/d...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67317.html

相關(guān)文章

  • Gecco的網(wǎng)絡(luò)爬蟲(chóng)例子

    摘要:到了這個(gè)時(shí)候,我們已經(jīng)可以把京東的分類(lèi)首頁(yè)的手機(jī)模塊給抓取下來(lái),并且保存成。 GeccoSpider爬蟲(chóng)例子 前些天,想要用爬蟲(chóng)抓取點(diǎn)東西,但是網(wǎng)上很多爬蟲(chóng)都是使用python語(yǔ)言的,本人只會(huì)java,因此,只能找相關(guān)java的爬蟲(chóng)資料,在開(kāi)源中國(guó)的看到國(guó)內(nèi)的大神寫(xiě)的一個(gè)開(kāi)源的爬蟲(chóng)框架,并下源碼研究了一下,發(fā)現(xiàn)跟官網(wǎng)描述的一樣,夠簡(jiǎn)單,簡(jiǎn)潔易用!有興趣的朋友可以到官網(wǎng)了解下! 我這個(gè)例...

    raoyi 評(píng)論0 收藏0
  • Gecco的網(wǎng)絡(luò)爬蟲(chóng)例子

    摘要:到了這個(gè)時(shí)候,我們已經(jīng)可以把京東的分類(lèi)首頁(yè)的手機(jī)模塊給抓取下來(lái),并且保存成。 GeccoSpider爬蟲(chóng)例子 前些天,想要用爬蟲(chóng)抓取點(diǎn)東西,但是網(wǎng)上很多爬蟲(chóng)都是使用python語(yǔ)言的,本人只會(huì)java,因此,只能找相關(guān)java的爬蟲(chóng)資料,在開(kāi)源中國(guó)的看到國(guó)內(nèi)的大神寫(xiě)的一個(gè)開(kāi)源的爬蟲(chóng)框架,并下源碼研究了一下,發(fā)現(xiàn)跟官網(wǎng)描述的一樣,夠簡(jiǎn)單,簡(jiǎn)潔易用!有興趣的朋友可以到官網(wǎng)了解下! 我這個(gè)例...

    Hydrogen 評(píng)論0 收藏0
  • cockroach 爬蟲(chóng):又一個(gè) java 爬蟲(chóng)實(shí)現(xiàn)

    摘要:爬蟲(chóng)又一個(gè)爬蟲(chóng)實(shí)現(xiàn)原文簡(jiǎn)介小強(qiáng)當(dāng)時(shí)不知道為啥選了這么個(gè)名字,又長(zhǎng)又難記,導(dǎo)致編碼的過(guò)程中因?yàn)閱卧~的拼寫(xiě)問(wèn)題耽誤了好長(zhǎng)時(shí)間。我是一個(gè)小強(qiáng)爬蟲(chóng)線(xiàn)程數(shù)健壯說(shuō)到健壯,這里主要體現(xiàn)在以下幾個(gè)方面應(yīng)對(duì)封鎖這里我們使用動(dòng)態(tài)代理來(lái)解決這個(gè)問(wèn)題。 cockroach 爬蟲(chóng):又一個(gè) java 爬蟲(chóng)實(shí)現(xiàn) 原文 簡(jiǎn)介 cockroach[小強(qiáng)] 當(dāng)時(shí)不知道為啥選了這么個(gè)名字,又長(zhǎng)又難記,導(dǎo)致編碼的過(guò)程中因?yàn)閱?..

    liangzai_cool 評(píng)論0 收藏0
  • Java爬蟲(chóng)之利Jsoup自制簡(jiǎn)單的搜索引擎

    摘要:的官方網(wǎng)址為,其使用手冊(cè)網(wǎng)址為本次分享將實(shí)現(xiàn)的功能為利用爬取某個(gè)搜索詞語(yǔ)暫僅限英文的百度百科的介紹部分,具體的功能介紹可以參考博客爬蟲(chóng)自制簡(jiǎn)單的搜索引擎。 ??Jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過(guò)DOM,CSS以及類(lèi)似于jQuery的操作方法來(lái)取出和操作數(shù)據(jù)。Jsoup的官方網(wǎng)址為: https:...

    GHOST_349178 評(píng)論0 收藏0
  • 后端技術(shù) - 收藏集 - 掘金

    摘要:理解迭代對(duì)象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫(xiě)的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個(gè)對(duì)象的內(nèi)容是后端掘金黑魔法之協(xié)程異步后端掘金本文為作者原創(chuàng),轉(zhuǎn)載請(qǐng)先與作者聯(lián)系。 完全理解關(guān)鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習(xí)慣,可能會(huì)看到一些優(yōu)秀的代碼經(jīng)常出現(xiàn)帶有 with 關(guān)鍵字的語(yǔ)句,它通常用在什么場(chǎng)景呢?今天就來(lái)說(shuō)說(shuō) with 和 上下...

    oujie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<