風鈴蟲入門教程 快速建立風鈴蟲

2021-10-01 14:21:10 字數 3692 閱讀 7892

風鈴蟲例項主要有以下兩種構建方式

//建立乙個提取規則

//該提取規則標識使用 xpath提取器進行提取,xpath的表示式為 //h1[@class='topic-_xj6visr']/text() , 該提取提取器的作用順序是0

fieldextractrule extractrule = new fieldextractrule(rule.xpath, "//h1[@class='topic-_xj6visr']/text()", "", 0);

//建立乙個提取項

contentitem contentitem = new contentitem();

contentitem

.setfiledname("name") //提取項**,不能為空

.setname("新聞標題") //提取項名字,可以不設定

.setrules(arrays.aslist(extractrule)); //設定提取規則

//建立乙個風鈴蟲例項

crawlerbuilder builder = crawlerbuilder.create()

.starturl("") //風鈴蟲的起始鏈結

// 風鈴蟲會將每次請求的網頁的內容中的url先全部提取出來,然後將完全匹配此規則的鏈結放入鏈結池,作為下次請求的種子鏈結。

// 如果不設定則表示提取鏈結中所有包含網域名稱關鍵字(例如此例中的ifeng)的鏈結放入鏈結池

.addlinkrule("http[s]?://news\\.ifeng\\.com/.*")//鏈結提取規則,多可新增多個鏈結提取規則,

//可以設定多個內容頁的規則,多個內容頁規則之間用半形逗號隔開

//只要內容頁url中完全匹配此規則就進行內容提取,如果不設定標識提取網域名稱下所有的鏈結

.extracturl("https://news\\.ifeng\\.com/c/[a-za-z0-9]+") //內容頁的規則,

.addextractitem(contentitem) //增加乙個提取項,風鈴蟲可以設定多個提取項,這裡為了演示只設定了乙個提取項

.interval(8);= crawlerbuilder.create()

.starturl("") //風鈴蟲的起始鏈結

// 風鈴蟲會將每次請求的網頁的內容中的url先全部提取出來,然後將完全匹配此規則的鏈結放入鏈結池,作為下次請求的種子鏈結。

// 如果不設定則表示提取鏈結中所有包含網域名稱關鍵字(例如此例中的ifeng)的鏈結放入鏈結池

.addlinkrule("http[s]?://news\\.ifeng\\.com/.*")//鏈結提取規則,多可新增多個鏈結提取規則,

//可以設定多個內容頁的規則,多個內容頁規則之間用半形逗號隔開

//只要內容頁url中完全匹配此規則就進行內容提取,如果不設定標識提取網域名稱下所有的鏈結

.extracturl("https://news\\.ifeng\\.com/c/[a-za-z0-9]+") //內容頁的規則,

.addextractitem(contentitem) //增加乙個提取項,風鈴蟲可以設定多個提取項,這裡為了演示只設定了乙個提取項

.interval(8);//每次進行爬取時的平均間隔時間,單位為秒,如果不設定則使用預設時間10秒,此值時為了防止抓取頻率太高被伺服器**

//風鈴蟲規則資訊

crawlerrule rule = builder.build();

//構建乙個簡單的風鈴蟲例項

crawler crawler = crawler.create(rule);

//建立乙個提取規則

//該提取規則標識使用 xpath提取器進行提取,xpath的表示式為 //h1[@class='topic-_xj6visr']/text() , 該提取提取器的作用順序是0

fieldextractrule extractrule = new fieldextractrule(rule.xpath, "//h1[@class='topic-_xj6visr']/text()", "", 0);

//建立乙個提取項

contentitem contentitem = new contentitem();

contentitem

.setfiledname("name") //提取項**,不能為空

.setname("新聞標題") //提取項名字,可以不設定

.setrules(arrays.aslist(extractrule)); //設定提取規則

//建立乙個風鈴蟲例項

crawlerbuilder builder = crawlerbuilder.create()

.starturl("") //風鈴蟲的起始鏈結

// 風鈴蟲會將每次請求的網頁的內容中的url先全部提取出來,然後將完全匹配此規則的鏈結放入鏈結池,作為下次請求的種子鏈結。

// 如果不設定則表示提取鏈結中所有包含網域名稱關鍵字(例如此例中的ifeng)的鏈結放入鏈結池

.addlinkrule("http[s]?://news\\.ifeng\\.com/.*")//鏈結提取規則,多可新增多個鏈結提取規則,

//可以設定多個內容頁的規則,多個內容頁規則之間用半形逗號隔開

//只要內容頁url中完全匹配此規則就進行內容提取,如果不設定標識提取網域名稱下所有的鏈結

.extracturl("https://news\\.ifeng\\.com/c/[a-za-z0-9]+") //內容頁的規則,

.addextractitem(contentitem) //增加乙個提取項,風鈴蟲可以設定多個提取項,這裡為了演示只設定了乙個提取項

.interval(8);= crawlerbuilder.create()

.starturl("") //風鈴蟲的起始鏈結

// 風鈴蟲會將每次請求的網頁的內容中的url先全部提取出來,然後將完全匹配此規則的鏈結放入鏈結池,作為下次請求的種子鏈結。

// 如果不設定則表示提取鏈結中所有包含網域名稱關鍵字(例如此例中的ifeng)的鏈結放入鏈結池

.addlinkrule("http[s]?://news\\.ifeng\\.com/.*")//鏈結提取規則,多可新增多個鏈結提取規則,

//可以設定多個內容頁的規則,多個內容頁規則之間用半形逗號隔開

//只要內容頁url中完全匹配此規則就進行內容提取,如果不設定標識提取網域名稱下所有的鏈結

.extracturl("https://news\\.ifeng\\.com/c/[a-za-z0-9]+") //內容頁的規則,

.addextractitem(contentitem) //增加乙個提取項,風鈴蟲可以設定多個提取項,這裡為了演示只設定了乙個提取項

.interval(8);//每次進行爬取時的平均間隔時間,單位為秒,如果不設定則使用預設時間10秒,此值時為了防止抓取頻率太高被伺服器**

//構建乙個簡單的風鈴蟲例項

crawler crawler = builder.creatcrawler();

無論是哪種構建方法,生成乙個風鈴蟲的最基礎的提供資訊必須包含以下兩種:

在風鈴蟲啟動成功後,每個風鈴蟲都會具有乙個唯一的隨機的名字,用於分辨風鈴蟲,獲取方法如下

crawler.getname()
在風鈴蟲例項啟動後,禁止進行修改屬性的操作,否則可能會導致風鈴蟲執行異常

官方文件

原始碼

matplotlib快速入門教程

matplotlib是乙個python的2d的繪相簿,通過使用matplotlib我們只需要幾行簡潔的 就可以繪圖,直方圖 功率譜 條形圖 錯誤圖 散點圖等。這篇部落格主要介紹的是matplotlib.pyplot模組,matplotlib其實就是乙個模仿matlab開發的python庫。當然,它不...

Linux快速入門教程

序言 linux是一套免費使用和自由傳播的類unix作業系統,這個系統是由全世界各地的成千上萬的程式設計師設計和實現的。下面的一些linux教程是為了快速入門,目的在於能快速掌握linux的基本知識,能對伺服器進行基本的維護。1.1 命令列操作 1.1.1 shell 簡介 1.1.2 shell ...

BMFont 快速入門教程

什麼是bmfont?這是個軟體,全稱bitmap font generator,顧名思義,位 字生成器。這個工具就是用來生成位 字字型配置檔案的,fnt檔案。這裡介紹是因為遊戲開發中經常用到這個,主流的各大遊戲引擎都支援使用bmfont字型格式,如cocos unity3d等。bmfont是個免費軟...