网站seo优化--jsoup 批量分析相关网站 标签,描述,关键词.
网站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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性