風鈴蟲例項主要有以下兩種構建方式
//建立乙個提取規則
//該提取規則標識使用 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是個免費軟...