网站seo优化--jsoup 批量分析相关网站 标签,描述,关键词.
因为自己写了一个磁力搜索网站Btgoogle,准备进行优化一下,需要分析其他的网站的优化情况。
Java的Jsoup类库和PHP的一个Simple_html_dom框架具有异曲同工之妙,非常的相像.
比如Jsoup里面doc.select(".classname[:eq()]")
和Simple_html_dom里面的$html->find(".classname",[eq])
都是尽量完整Jquery里面的功能.非常实用.后面对这两个东西准备对比分析一下.对比而言,Jsoup比功能还是强大不少,更加接近JS.
Python
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那么方便,就直接用Jsoup了
Jsoup
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;
} }
}
}
这里面也有几个坑:
- 1.403 错误 ,服务器拒绝访问,这是老生常谈的问题了.模拟浏览器就行了.
- 2.超时错误,使用
timeout(timelength)
- 3.错误处理,当然如果出现错误,整个程序就会暂停,所以异常处理那段搞搞就行
try{..}catch{..}
版权归石头(winipcss@outlook.com)和博客园所有,都拷去那么多了,这一段也拷贝了吧http://www.cnblogs.com/webers/p/4350813.html