企業數據爬蟲項目(豔輝VIP項目)
第一天:下載解析網站頁面
以爬取某電影網上的電影信息爲例,通過xpath,regex獲取網頁上的字段。通過三大sevice,下載網頁service,解析網頁service和數據存儲service,全面爬取網站上的信息。
爬蟲開始——>下載網頁——>解析網頁——>存數數據
三步走,分成三大service,例如存數數據,可以用jdbcService,也可以用hbaseService,這樣方便擴展業務。
/**
* 開啓一個爬蟲入口
*/
public void startSpider(){
while(true){
//從隊列中提取需要解析的url
String url = urlQueue.poll();
//判斷url是否爲空
if(StringUtils.isNotBlank(url)){
//下載
Page page = this.downloadPage(url);
//解析
this.processPage(page);
List<String> urlList = page.getUrlList();
for(String eachurl : urlList){
this.urlQueue.add(eachurl);
}
//if(page.getUrl().startsWith("http://list.youku.com/show_page")){
//存儲數據
this.storePageInfo(page);
//}
}else{
System.out.println("url解析完畢!");
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
先爬取電影的標題,電影訪問的次數,評論的人數,電影豆瓣的評分等信息。
String seeNum = HtmlUtil.getFieldByRegex2(rootNode, LoadPropertyUtil.getYOUKU("seeXpath"),
LoadPropertyUtil.getYOUKU("seeRegex"));
page.setSeeNum(seeNum);
// 獲取評論數
String commentNum = HtmlUtil.getFieldByRegex2(rootNode, LoadPropertyUtil.getYOUKU("commentXpath"),
LoadPropertyUtil.getYOUKU("commentRegex"));
page.setCommentNum(commentNum);
// 獲取豆瓣評分
String score = HtmlUtil.getFieldByRegex2(rootNode, LoadPropertyUtil.getYOUKU("scoreXpath"),
LoadPropertyUtil.getYOUKU("scoreRegex"));
page.setScore(score);
String title = HtmlUtil.getFieldByRegex2(rootNode, LoadPropertyUtil.getYOUKU("titleXpath"),
LoadPropertyUtil.getYOUKU("titleRegex"));
page.setTitle(title);
需要下載源碼可點擊 豔學網
下載源碼後,記住分享喲!
第一步:微信關注公衆號豔學網!
第二步:關注後打開菜單“豔輝福利”——“java福利”,轉發文章至朋友圈。
長按自動識別二維碼,即可關注微信公衆號“豔學網”