存档

‘SEO/SEM’ 分类的存档

apache日志处理:记录搜索引擎抓取

2013年12月17日 评论已被关闭

我们做SEO的时候,常常希望知道搜索引擎爬虫什么时候光顾了我们的网站,这时我们就可以同下面的方法,将搜索引擎的抓取日志单独放在一个日志文件中。

1、 识别搜索引擎:

在“/etc/httpd/conf/httpd.conf”文件“LogFormat”前面添加如下内容,用来判断是蜘蛛抓取还是真实用户访问:

2、 定义日志格式:

在“httpd.conf”文件“LogFormat”下面添加一行,设置一个新的日志格式:

3、 记录搜索引擎日志:

如果服务器上面架了多个站点,就在"VirtualHost"中新增下面一行,否则就在httpd.conf中“CustomLog”下面新增下面一行:

上面的big是第二步定义的日志格式,robot是第一步的判断是否为搜索引擎的变量。

4、测试配置文件并重新加载配置文件:

分类: SEO/SEM, 网络 标签: ,

linux bash查询百度排名脚本rank.sh

2013年7月8日 没有评论

今天写了个"bash"脚本"rank.sh",用来查询指定域名和关键字在百度搜索引擎的排名,记录下:


"rank.sh"脚本主要用到的命令:

1. xxd命令: "xxd"能将文本转为16进制,再用"sed"实现每两个字符前插入一个"%"符号,即可在bash实现"url编码"的功能,如:

  1. # echo '中文'|xxd -plain | sed 's/\(..\)/%\1/g'
  2. %e4%b8%ad%e6%96%87%0a

2. curl: 用来搜索关键字并抓结果,"curl"的用法参考:Linux curl命令参数详解

3. sed: 本来"rank.sh"脚本大部分功能应该由"sed"命令实现的,遗憾的是"sed"不支持"非贪婪模式",如:

  1. # echo "1<p>2</p>3<p>4</p>5" | sed 's#<p>.*\?</p>##g'
  2. 15 #期望结果为135,输出的结果却是15

虽然本例可以通过下列正则表达式实现,但是在特殊场合不支持"非贪婪模式",依然是一件很悲剧的事情,所以"rank.sh"脚本大部分功能实现都由"grep -Po"代替了。

  1. # echo "1<p>2</p>3<p>4</p>5"|sed 's#<p>[0-9]</p>##g'
  2. 135

4. grep: "grep"真是个好东西,能实现php "preg_match_all"的功能,还支持"非贪婪模式",真是太好了:

  1. # echo "1<p>2</p>3<p>4</p>5" | grep -Po "<p>[0-9]</p>"
  2. <p>2</p>
  3. <p>4</p>


linux bash查询百度排名"rank.sh"脚本内容:

下面是bash百度排名查询脚本"rank.sh"的代码,你可以复制代码粘贴到linux系统中运行,也可以直接通过"wget http://www.aiezu.com/uploads/bash/rank.sh "下载脚本运行,记住要用"chmod a+x rank.sh"添加可执行权限才可运行哦~

  1. #!/bin/bash
  2. A="Mozilla/5.0" #user-agent
  3. cookies="/tmp/baiducookies"
  4. if [ -z "$1" ] || [ -z "$2" ]; then
  5.     echo "Useage: $0 DomainName Keyword";
  6.     echo "Example: $0 www.aiezu.com 爱E族";
  7.     exit
  8. fi
  9. #中文urlencode编码
  10. key=$(echo "$2" | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g');
  11. me=$1;
  12. #页码1-10页,每页100个查询结果,如果第一页未找到结果,自动找下一页
  13. for page in `seq 1 10`;
  14. do
  15.     d="wd=${key}&usm=1&ie=utf-8&rsv_page=1&rn=100";
  16.     if [ "$page" -gt "1" ]; then
  17.         let pn=(page-1)*100;
  18.         d="$d&pn=$pn";
  19.     fi
  20.     url="http://www.baidu.com/s";
  21.     r0=$(curl -c "$cookies" -b "$cookies" -d "$d" -G -A "$A" -e "$e" -# "$url"|tr '\n' ' '|sed 's#</\?b>##g');
  22.     r1=$(echo $r0|grep -Po '<table[^>]*id="[0-9]*"[^>]*>.*?</table>'|sed -n 's@.* id="\([0-9]*\)".*\(<span class="\(g\|c-showurl\)">\|<font size="-1" color="#008000">\)[ ]*\([^> /]*\).*@\1|\4@gp');
  23.     v=$(echo $r1|grep -Po "[^ ]*$me"|cut -d'|' -f2 | sort | uniq);
  24.     if ! [ -z "$v" ]; then
  25.         for domain in $v;
  26.         do
  27.             num=`echo $r1|grep -Po "[^ ]*$domain"|cut -d'|' -f1|tr '\n' ' '`;
  28.             echo -e "$domain\t$num";
  29.         done | sort -k 2 -n
  30.         exit
  31.     fi
  32. done
linux bash查询百度排名"rank.sh"脚本使用方法:

复制或者下载脚本到linux系统,然后:

  1. # chmod a+x rank.sh #添加可执行权限
  2. # ./rank.sh #查看用法
  3. Useage: ./rank.sh DomainName Keyword
  4. Example: ./rank.sh www.aiezu.com 爱E族
  5. # ./rank.sh qq.com 微博
  6. ######################################## 100.0%
  7. t.qq.com 2 11 13 14 17 35 36 44 45 48 53 81
  8. p.t.qq.com 17 31 #域名p.t.qq.com在查询关键"微博"时间在百度排在第17、31名
  9. dev.t.qq.com 35
  10. open.t.qq.com 36
  11. blog.qq.com 38
  12. www.qq.com 49
  13. t.auto.qq.com 56
  14. ent.qq.com 81
分类: Linux, SEO/SEM 标签: , , , ,

SEO优化网站的抓取与收录

2013年4月11日 没有评论

前两天邮箱里收到google adsense的邮件,名为优化网站的抓取与收录,其中包含4条内容:1、去除URL中的用户相关参数;2、控制无限空间;3、阻止Google爬虫抓取他们不能处理的页面;4、一人一票。 一个 URL, 一段内容。

其中第二条,控制无限空间让我颇有触动。

阅读全文...

分类: SEO/SEM 标签:

SEO优化必须用到的网站-不断更新

2013年4月11日 没有评论
百度SEO网站:

百度指数:http://index.baidu.com/

百度推广:http://e.baidu.com

站长工具:http://zhanzhang.baidu.com

阅读全文...

分类: SEO/SEM 标签: