網站seo優化--jsoup 批量分析相關網站 標籤,描述,關鍵詞.

網站seo優化--jsoup 批量分析相關網站 標籤,描述,關鍵詞.

由於本身寫了一個磁力搜索網站Btgoogle,準備進行優化一下,須要分析其餘的網站的優化狀況。

 

Java的Jsoup類庫和PHP的一個Simple_html_dom框架具備殊途同歸之妙,很是的相像.css

好比Jsoup裏面doc.select(".classname[:eq()]")Simple_html_dom裏面的$html->find(".classname",[eq])都是儘可能完整Jquery裏面的功能.很是實用.後面對這兩個東西準備對比分析一下.對比而言,Jsoup比功能仍是強大很多,更加接近JS.html

Pythonjava

import urllib2
import re
import sys
url= "http://www.*****.com"
req=urllib2.Request(url)
r=urllib2.urlopen(req)
html=r.read()
m = re.search('\<meta name="keywords" content="(.*)"\/\>',html)
print m.group(1)
m = re.search('\<meta name="description" content="(.*)"\/\>',html)
print m.group(1)

簡潔的python版,python效率仍是很不錯的,不過看Jsoup那麼方便,就直接用Jsoupnode

Jsouppython

package keyword;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class keyword {
    public static void main(String[] args) {
    	int i=0;
    	int error1=2;
        for(i=0;i<=10;i++){
    	   Document doc = null;
            try {
                doc = Jsoup.connect("http://www.baidu.com/s?wd=磁力搜索&pn="+i*10).get();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Elements url = doc.getElementsByClass("g");
            for (Element link : url){
            	String linktext=link.text().replaceAll("/(.*)","");
            	linktext="http://"+linktext;
            	System.out.println("連接:"+linktext);
            	Document linkin = null;
                try {
                    linkin = Jsoup.connect(linktext).timeout(5000).header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0").get();
                } catch (Exception e) {
                    error1=1;
                }
                if(error1!=1){
                String title = linkin.title();
                Elements metas = linkin.head().select("meta");  
                for (Element meta : metas) {  
                    String content = meta.attr("content");  
                    if ("keywords".equalsIgnoreCase(meta.attr("name"))) {  
                        System.out.println("關鍵字:"+content);  
                    }  
                    if ("description".equalsIgnoreCase(meta.attr("name"))) {  
                        System.out.println("網站內容描述:"+content);  
                    }  
                }  
                Elements keywords = linkin.getElementsByTag("meta");
                System.out.println("標題"+title);
                }
                error1=0;
            }
        
        }
    }
}

這裏面也有幾個坑:web

  • 1.403 錯誤 ,服務器拒絕訪問,這是老生常談的問題了.模擬瀏覽器就好了.
  • 2.超時錯誤,使用timeout(timelength)
  • 3.錯誤處理,固然若是出現錯誤,整個程序就會暫停,因此異常處理那段搞搞就行try{..}catch{..}

版權歸石頭(winipcss@outlook.com)和博客園全部,都拷去那麼多了,這一段也拷貝了吧 http://www.cnblogs.com/webers/p/4350813.html
相關文章
相關標籤/搜索