日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql git 获取 稳定版本 源码_webmagic新版文档(更新中)

發布時間:2024/9/3 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql git 获取 稳定版本 源码_webmagic新版文档(更新中) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebMagic in Action

WebMagic是一個簡單靈活、便于二次開發的爬蟲框架。除了可以便捷的實現一個爬蟲,WebMagic還提供多線程功能,以及基本的分布式功能。

你可以直接使用WebMagic進行爬蟲開發,也可以定制WebMagic以適應復雜項目的需要。

1. 在項目中使用WebMagic

WebMagic主要包含兩個jar包:webmagic-core-{version}.jar和webmagic-extension-{version}.jar。在項目中添加這兩個包的依賴,即可使用WebMagic。

1.1 使用Maven

WebMagic基于Maven進行構建,推薦使用Maven來安裝WebMagic。在項目中添加以下坐標即可:

us.codecraft

webmagic-extension

0.4.3

WebMagic使用slf4j-log4j12作為slf4j的實現.如果你自己定制了slf4j的實現,請在項目中去掉此依賴。

us.codecraft

webmagic-extension

0.4.3

org.slf4j

slf4j-log4j12

1.2 不使用Maven

不使用maven的用戶,可以下載附帶二進制jar包的版本(感謝oschina):

git clone http://git.oschina.net/flashsword20/webmagic.git

在lib目錄下,有項目依賴的所有jar包,直接在IDE里,將這些jar添加到Libraries即可。

1.3 第一個項目

在你的項目中添加了WebMagic的依賴之后,即可開始第一個爬蟲的開發了!我們這里拿一個抓取Github信息的例子:

import us.codecraft.webmagic.Page;

import us.codecraft.webmagic.Site;

import us.codecraft.webmagic.Spider;

import us.codecraft.webmagic.processor.PageProcessor;

public class GithubRepoPageProcessor implements PageProcessor {

private Site site = Site.me().setRetryTimes(3).setSleepTime(100);

@Override

public void process(Page page) {

page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/\\w+/\\w+)").all());

page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString());

page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString());

if (page.getResultItems().get("name")==null){

//skip this page

page.setSkip(true);

}

page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));

}

@Override

public Site getSite() {

return site;

}

public static void main(String[] args) {

Spider.create(new GithubRepoPageProcessor()).addUrl("https://github.com/code4craft").thread(5).run();

}

}

點擊main方法,選擇“運行”,你會發現爬蟲已經可以正常工作了!

2.下載和編譯源碼

WebMagic是一個純Java項目,如果你熟悉Maven,那么下載并編譯源碼是非常簡單的。如果不熟悉Maven也沒關系,這部分會介紹如何在Eclipse里導入這個項目。

2.1 下載源碼

WebMagic目前有兩個倉庫:

github上的倉庫保存最新版本,所有issue、pull request都在這里。大家覺得項目不錯的話別忘了去給個star哦!

此倉庫包含所有編譯好的依賴包,只保存項目的穩定版本,最新版本仍在github上更新。oschina在國內比較穩定,主要作為鏡像。

無論在哪個倉庫,使用

git clone https://github.com/code4craft/webmagic.git

或者

git clone http://git.oschina.net/flashsword20/webmagic.git

即可下載最新代碼。

如果你對git本身使用也不熟悉,建議看看@黃勇的 從 Git@OSC 下載 Smart 源碼

2.2 導入項目

Intellij Idea默認自帶Maven支持,import項目時選擇Maven項目即可。

2.2.1 使用m2e插件

安裝后,在File->Import中選擇Maven->Existing Maven Projects即可導入項目。

導入后看到項目選擇界面,點擊finish即可。

2.2.2 使用Maven Eclipse插件

如果沒有安裝m2e插件,只要你安裝了Maven,也是比較好辦的。在項目根目錄下使用命令:

mvn eclipse:eclipse

生成maven項目結構的eclipse配置文件,然后在File->Import中選擇General->Existing Projects into Workspace即可導入項目。

導入后看到項目選擇界面,點擊finish即可。

2.3 編譯和執行源碼

導入成功之后,應該就沒有編譯錯誤了!此時你可以運行一下webmagic-core項目中自帶的exmaple:"us.codecraft.webmagic.processor.example.GithubRepoPageProcessor"。

同樣,看到控制臺輸出如下,則表示源碼編譯和執行成功了!

3. 基本的爬蟲

3.1 實現PageProcessor

在WebMagic里,實現一個基本的爬蟲只需要編寫一個類,實現PageProcessor接口即可。這個類基本上包含了抓取一個網站,你需要寫的所有代碼。

以之前的GithubRepoPageProcessor為例,我將PageProcessor的定制分為三個部分:

public class GithubRepoPageProcessor implements PageProcessor {

// 部分一:抓取網站的相關配置,包括編碼、抓取間隔、重試次數等

private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);

@Override

// process是定制爬蟲邏輯的核心接口,在這里編寫抽取邏輯

public void process(Page page) {

// 部分二:定義如何抽取頁面信息,并保存下來

page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString());

page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString());

if (page.getResultItems().get("name") == null) {

//skip this page

page.setSkip(true);

}

page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));

// 部分三:從頁面發現后續的url地址來抓取

page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/\\w+/\\w+)").all());

}

@Override

public Site getSite() {

return site;

}

public static void main(String[] args) {

Spider.create(new GithubRepoPageProcessor())

//從"https://github.com/code4craft"開始抓

.addUrl("https://github.com/code4craft")

//開啟5個線程抓取

.thread(5)

//啟動爬蟲

.run();

}

}

3.1.1 爬蟲的配置

第一部分關于爬蟲的配置,包括編碼、抓取間隔、超時時間、重試次數等,也包括一些模擬的參數,例如User Agent、cookie,以及代理的設置,我們會在第5章-“爬蟲的配置”里進行介紹。在這里我們先簡單設置一下:重試次數為3次,抓取間隔為一秒。

3.1.2 頁面元素的抽取

第二部分是爬蟲的核心部分:對于下載到的Html頁面,你如何從中抽取到你想要的信息?WebMagic里主要使用了三種抽取技術:XPath、正則表達式和CSS選擇器。

XPath本來是用于XML中獲取元素的一種查詢語言,但是用于Html也是比較方便的。例如:

page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()")

這段代碼使用了XPath,它的意思是“查找所有class屬性為'entry-title public'的h1元素,并找到他的strong子節點的a子節點,并提取a節點的文本信息”。

對應的Html是這樣子的:

CSS選擇器是于XPath類似的語言。如果大家做過前端開發,肯定知道$('h1.entry-title')這種寫法的含義??陀^的說,它比XPath寫起來要簡單一些,但是如果寫復雜一點的抽取規則,就相對要麻煩一點。

正則表達式則是一種通用的文本抽取語言。

page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/\\w+/\\w+)").all());

XPath、CSS選擇器和正則表達式的具體用法我會在第4章“抽取工具詳解”中講到。

3.1.3 鏈接的發現

3.2 保存結果

4. 抽取工具詳解

4.1 XPath

4.2 CSS選擇器

4.3 正則表達式

4.4 JsonPath

5. 配置爬蟲

5.1 抓取頻率

5.2 編碼

5.3 代理

5.4 設置cookie/UA等http頭信息

5.5 重試機制

5.6 多線程

6. 爬蟲的啟動和終止

6.1 啟動爬蟲

6.2 終止爬蟲

6.3 設置執行時間

6.4 定期抓取

7. 抽取結果的處理

7.1 輸出到控制臺

7.2 保存到文件

7.3 JSON格式輸出

7.4 自定義持久化方式(mysql/mongodb…)

8. 管理URL

8.1 手動添加URL

8.2 在URL中保存信息

8.3 幾種URL管理方式

8.4 自己管理爬蟲的URL

9. 實例

9.1 基本的列表+詳情頁的抓取

9.2 抓取動態頁面

9.3 分頁抓取

9.4 定期抓取

總結

以上是生活随笔為你收集整理的mysql git 获取 稳定版本 源码_webmagic新版文档(更新中)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。