<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SEM WATCH 搜索引擎营销观察</title>
	<atom:link href="http://semwatch.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://semwatch.org</link>
	<description>SEMWATCH.org version Beta</description>
	<lastBuildDate>Tue, 17 Apr 2012 01:48:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>全自动监控网站关键词排名（Python实现）</title>
		<link>http://semwatch.org/2012/04/monitoring-rank/</link>
		<comments>http://semwatch.org/2012/04/monitoring-rank/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 01:48:36 +0000</pubDate>
		<dc:creator>zero</dc:creator>
				<category><![CDATA[搜索优化SEO]]></category>

		<guid isPermaLink="false">http://semwatch.org/?p=5763</guid>
		<description><![CDATA[从这篇文章开始不打算再花费大量精力去写程序本身的知识，毕竟是各类书籍上有的内容。其余主要需要学习的是内置函数的使用，和一些模块的使用方式，尤其是pycurl, re, threading这些需要慢慢熟悉起来。 若在学习中有不解的地方，在文章评论中可以提出，如果有空会尽力帮忙解答。 程序需求 对于稍大的一个网站，往往会有许多关键词需要每隔一个周期监控它们的排名，以分析SEO效果的好坏，及判断百度Google的动向等等。 有一个关键在于数据的收集全自动与否的问题。若经常用Google Analytics分析数据的话应该会感觉到，数据分析的需求是多种多样的，只有事先已经有了完善的各个维度的数据以后，才能随着最初的想法进行分析，而不会为数据的匮乏所局限。像Google Analytics这样出色的工具完全自动的将这些数据收集了起来，才给SEO对于流量的多样化分析打下了基础。同样的，如果想分析的时候更自由的话，就需要记录尽多种类的历史数据，如果这些作为每日工作，那将耗时非常长，所以自动化的收集就体现出了其重要性。 现有的监控排名主要解决方案是使用商业软件Rank Tracker，但它也有些不是很理想的地方。比如对于几乎所有既有软件都存在的问题，功能不灵活。另外它最大的弊端之一在于它一定要找个具有图形界面的系统运行（因为它是Java实现的，有多操作系统版本，所以不一定是Windows）。 对于DIY的Python脚本，在Linux系统里面可以将其放到crontab中（系统级计划任务），全自动的定时运行收集原始数据。然后在需要的时候，再用另外的脚本来处理原始数据，进行各个维度的分析。所需的一般情况下为：Linux系统的低配置VPS一台，总共不超过100行的Python代码（Windows也能实现这些，但相对比较麻烦）。 然后再来分析更具体的需求。此处我总结了一些原则： 1. 除非数据量大到会对硬盘带来压力（比如每日数G的日志的分析等），不然把能想到的尽多的数据都记录下来。因为分析的需求是多变的，数据若全面即可有备无患。 2. 同上，除非数据量极大，不然务必把历史数据全部保存下来。在大数据量的时候，也需要按实际情况保存一定时间区间的数据（打个比方，前3年每月保存一副本，当年每周保存一副本）。历史数据的对比在很多时候的意义非常大。 3. 当数据非常单一的时候，使用txt按行保存；当数据比较简单的时候，使用csv按行列储存；当数据比较复杂的时候，可以考虑使用MongoDB等key-value型NoSQL储存；再复杂的时候，使用MySQL之类的关系性数据库储存。但这些不是绝对的，还是要看实际情况而定。 对于目前的需求，因为是要监控关键词排名趋势，所以一般最多监控几千个关键词就够了。或许网站比较大，想了解数十万的关键词的排名，但对于了解排名趋势的情况下，没必要全部查询，随机选取其中一小部分作为样本就可以了。 因为最多几千个关键词，所以最好每天记录一次它们的排名数据（保证稳定的情况下，对于单IP，Google每天可以查询5000+词，百度则可以查询数万的词）。而且数据本身，主要为关键词、排名、着陆页URL这几项，文件体积很小，所以每天都保存一份数据。 数据的储存方式上，此时一般建议选择csv。它和Excel表格(xls)在数据的储存方式上是一模一样的。 代码实现 这些代码需要以下运行环境： Linux操作系统 Python的第三方模块pycurl Python下载网页的最简单方式是： 但urllib2模块本身功能虽然还行，却仍离pycurl模块有较大距离。且在做稍微复杂一些的操作时，pycurl模块使用起来比urllib2模块方便很多。pycurl是必须要熟练运用的模块之一，但也因为它上手可能会让人有点头疼，这里我自己写了一个模块，以此即可方便的使用它： 对于简单的采集里面需要用到的下载功能，已经被整合在了这个模块之中。如User-agent轮换、自动301/302跳转等、使用当前URL作为REFERER的有些取巧的方法等。这个模块的代码可以日后再慢慢理解，现在只要知道它的用法即可。 首先到放置Python脚本的目录，将前面一段代码保存为curl.py，然后在同一目录下创建一个新文件，输入以下测试代码： 这个模块会在以后几乎每个脚本里面都用到，所以这些基础用法务必牢记。接下来是监控网站关键词排名的正式代码： cron.py 这段代码即可监控排名并收集数据。它的使用命令如：python cron.py semwatch.org keywords.txt 在运行之前，先要把关键词按行分隔，保存成txt文件，并在运行参数中让脚本去读取它。每次运行之后，会在/home/rank/文件夹下，创建一个类似1970-01-01.csv这样文件名的文件，保存着当日的关键词排名情况。 为了让排名查询能自动化，可以将脚本设置为Linux的计划任务。在终端敲入：crontab -e，即可进入对于计划任务的编辑（它也使用一段脚本控制，而非Windows是图形界面）。为此必须要对VIM编辑器有最基础的了解，至少要能把字打上去并保存，可参考：http://ooxx.me/basic-vi.orz 在crontab输入并保存：00 05 * * * python cron.py semwatch.org keywords.txt 此处为了简化一些Linux的环境变量的问题，需要将cron.py, curl.py, keywords.txt三个文件，都放到~文件夹下。crontab的默认执行路径便是~。 前面一段命令的意思是在每日05:00自动执行脚本。当然需要计算机是处于开机的状态，也因此推荐使用一般不会关机的VPS来做这些监控类任务。此外需要注意的是系统的时间，VPS上面的时区可能和本地不同，可以在终端下使用date命令来确认。 至此日常排名数据的收集已经完成了，但光收集肯定不行，还需要分析。分析可以是各个角度的，这里以最常用的举例，分析网站关键词排名整体上升或下降的趋势。代码很简单： analyse.py 以一个数值的形式来量化整体的排名，数值越高则代表整体排名越好。可以直接运行python [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="案例分析：排名到底有多大关系？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2F%25E6%25A1%2588%25E4%25BE%258B%25E5%2588%2586%25E6%259E%2590%25EF%25BC%259A%25E6%258E%2592%25E5%2590%258D%25E5%2588%25B0%25E5%25BA%2595%25E6%259C%2589%25E5%25A4%259A%25E5%25A4%25A7%25E5%2585%25B3%25E7%25B3%25BB%25EF%25BC%259F%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022446.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">案例分析：排名到底有多大关系？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="网站速度将会影响排名" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F11%2Fsite-speed-may-soon-affect-google-page-ranking%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060702.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">网站速度将会影响排名</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Google将降低关键词域名对于网站排名的权重" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F03%2Fgoogle-may-lower-rankings-of-keyword-domains%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12020799.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Google将降低关键词域名对于网站排名的权重</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="搜索排名变化，怎么办？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F09%2Fhow-to-deal-with-rank-change%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022367.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">搜索排名变化，怎么办？</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>从这篇文章开始不打算再花费大量精力去写程序本身的知识，毕竟是各类书籍上有的内容。其余主要需要学习的是内置函数的使用，和一些模块的使用方式，尤其是pycurl, re, threading这些需要慢慢熟悉起来。</p>
<p><span id="more-5763"></span></p>
<p>若在学习中有不解的地方，在文章评论中可以提出，如果有空会尽力帮忙解答。</p>
<p><strong>程序需求</strong></p>
<p>对于稍大的一个网站，往往会有许多关键词需要每隔一个周期监控它们的排名，以分析SEO效果的好坏，及判断百度Google的动向等等。</p>
<p>有一个关键在于数据的收集全自动与否的问题。若经常用Google Analytics分析数据的话应该会感觉到，数据分析的需求是多种多样的，只有事先已经有了完善的各个维度的数据以后，才能随着最初的想法进行分析，而不会为数据的匮乏所局限。像Google Analytics这样出色的工具完全自动的将这些数据收集了起来，才给SEO对于流量的多样化分析打下了基础。同样的，如果想分析的时候更自由的话，就需要记录尽多种类的历史数据，如果这些作为每日工作，那将耗时非常长，所以自动化的收集就体现出了其重要性。</p>
<p>现有的监控排名主要解决方案是使用商业软件Rank Tracker，但它也有些不是很理想的地方。比如对于几乎所有既有软件都存在的问题，功能不灵活。另外它最大的弊端之一在于它一定要找个具有图形界面的系统运行（因为它是Java实现的，有多操作系统版本，所以不一定是Windows）。</p>
<p>对于DIY的Python脚本，在Linux系统里面可以将其放到crontab中（系统级计划任务），全自动的定时运行收集原始数据。然后在需要的时候，再用另外的脚本来处理原始数据，进行各个维度的分析。所需的一般情况下为：Linux系统的低配置VPS一台，总共不超过100行的Python代码（Windows也能实现这些，但相对比较麻烦）。</p>
<p>然后再来分析更具体的需求。此处我总结了一些原则：</p>
<p>1. 除非数据量大到会对硬盘带来压力（比如每日数G的日志的分析等），不然把能想到的尽多的数据都记录下来。因为分析的需求是多变的，数据若全面即可有备无患。</p>
<p>2. 同上，除非数据量极大，不然务必把历史数据全部保存下来。在大数据量的时候，也需要按实际情况保存一定时间区间的数据（打个比方，前3年每月保存一副本，当年每周保存一副本）。历史数据的对比在很多时候的意义非常大。</p>
<p>3. 当数据非常单一的时候，使用txt按行保存；当数据比较简单的时候，使用csv按行列储存；当数据比较复杂的时候，可以考虑使用MongoDB等key-value型NoSQL储存；再复杂的时候，使用MySQL之类的关系性数据库储存。但这些不是绝对的，还是要看实际情况而定。</p>
<p>对于目前的需求，因为是要监控关键词排名趋势，所以一般最多监控几千个关键词就够了。或许网站比较大，想了解数十万的关键词的排名，但对于了解排名趋势的情况下，没必要全部查询，随机选取其中一小部分作为样本就可以了。</p>
<p>因为最多几千个关键词，所以最好每天记录一次它们的排名数据（保证稳定的情况下，对于单IP，Google每天可以查询5000+词，百度则可以查询数万的词）。而且数据本身，主要为关键词、排名、着陆页URL这几项，文件体积很小，所以每天都保存一份数据。</p>
<p>数据的储存方式上，此时一般建议选择csv。它和Excel表格(xls)在数据的储存方式上是一模一样的。</p>
<p><strong>代码实现</strong></p>
<p>这些代码需要以下运行环境：</p>
<p>Linux操作系统<br />
Python的第三方模块pycurl</p>
<p>Python下载网页的最简单方式是：</p>
<pre class="brush: python; title: ; notranslate">
import urllib2
print urllib2.urlopen('http://semwatch.org/').read()
</pre>
<p>但urllib2模块本身功能虽然还行，却仍离pycurl模块有较大距离。且在做稍微复杂一些的操作时，pycurl模块使用起来比urllib2模块方便很多。pycurl是必须要熟练运用的模块之一，但也因为它上手可能会让人有点头疼，这里我自己写了一个模块，以此即可方便的使用它：</p>
<pre class="brush: python; title: ; notranslate">
from pycurl import *
import StringIO, time, random

def curl(url, retry=False, delay=1, **kwargs):
    '''Basic usage: curl('http://www.xxx.com/'), will download the url.
    If set `retry` to True, when network error, it will retry automatically.
    `delay` set the seconds to delay between every retry.
    **kwargs can be curl params. For example:
    curl(url, FOLLOWLOCATION=False, USERAGENT='Firefox')
    '''
    useragent_list = [
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)',
        'Opera/9.20 (Windows NT 6.0; U; en)',
        'Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.1; .NET CLR 1.1.4322)',
        'Opera/9.00 (Windows NT 5.1; U; en)',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.0',
        'Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]',
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20060127 Netscape/8.1',
    ]
    size = len(useragent_list)
    useragent = useragent_list[random.randint(0, size-1)]

    s = StringIO.StringIO()

    c = Curl()
    c.setopt(NOSIGNAL, True)
    c.setopt(FOLLOWLOCATION, True)
    c.setopt(MAXREDIRS, 5)
    c.setopt(TIMEOUT, 120)

    for key in kwargs:
        c.setopt(locals()[key], kwargs[key])

    c.setopt(URL, url)
    c.setopt(WRITEFUNCTION, s.write)
    if 'USERAGENT' not in kwargs:
        c.setopt(USERAGENT, useragent)
    if 'REFERER' not in kwargs:
        c.setopt(REFERER, url)

    while 1:
        try:
            c.perform()
            break
        except:
            if retry:
                time.sleep(delay)
            else:
                return False
    return s.getvalue()
</pre>
<p>对于简单的采集里面需要用到的下载功能，已经被整合在了这个模块之中。如User-agent轮换、自动301/302跳转等、使用当前URL作为REFERER的有些取巧的方法等。这个模块的代码可以日后再慢慢理解，现在只要知道它的用法即可。</p>
<p>首先到放置Python脚本的目录，将前面一段代码保存为curl.py，然后在同一目录下创建一个新文件，输入以下测试代码：</p>
<pre class="brush: python; title: ; notranslate">
# -*- coding:utf-8 -*-
import curl

print curl.curl('http://g.cn/') #这样即下载了一个网页

#以下是比较保险的下载方式，因为各种原因，就算总体很稳定的网站也偶尔会出现网页暂时无法打开的情况
#当网页下载出错时，如果retry为True，则会不断重试，直到下载完网页
#delay则指定了几次重试之间的时间间隔，以秒为单位
print curl.curl('http://g.cn/', retry=True, delay=1)

#以下用到了一些Curl的参数，详细说明可见：http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
print curl.curl('http://g.cn/', FOLLOWLOCATION=False, COOKIE='mycookie')
</pre>
<p>这个模块会在以后几乎每个脚本里面都用到，所以这些基础用法务必牢记。接下来是监控网站关键词排名的正式代码：</p>
<p>cron.py</p>
<pre class="brush: python; title: ; notranslate">
# -*- coding:utf-8 -*-

#加载模块，此处大致按功能划分行，是为了能够更方便理解代码
import sys, os, random, time, datetime
import urllib, re
import curl

#sys.argv是系统参数，1:3切片意味着读取参数2，3，分别赋值给两个变量
site, file_keyword = sys.argv[1:3]

keywords = []    #先将keywords声明初始为列表型变量

#迭代文件，每次读取一行文字
for line in open(file_keyword):
    line = line.rstrip()    #将行尾的空白字符去掉，一般行尾会有换行符等
    if line:    #判断该行是否是空白行，也可更标准的写作if len(line)!=0:
        keywords.append(line)   #将读取到的文字加入到keywords列表中

#获取UTC时间，之所以使用UTC时间是为了避免时区问题带来的未知麻烦
#北京时间是UTC+8，如该日UTC时间01:00相当于北京时间09:00
now = datetime.datetime.utcnow()

#将UTC时间格式化，变成如1970-01-01的格式
date = datetime.datetime.strftime(now, '%Y-%m-%d')

#尝试创建文件夹，如果文件夹已创建则跳过
try:
    os.mkdir('/home/rank/')
except:
    pass

#打开输出数据的文件，以当日的日期命名它
f = open('/home/rank/%s.csv' % date, 'w')

for keyword in keywords:
    #因为关键词可能是非ASCII字符集的，所以需要编码
    encoded_keyword = urllib.quote_plus(keyword)

    #下载SERP并提取链接
    url = 'http://www.baidu.com/s?wd=%s&amp;rn=100' % encoded_keyword

    #下载SERP，如果出现验证码即延时10分钟并重试
    while 1:
        html = curl.curl(url, retry=True, delay=60)

        if '&lt;img src=&quot;http://verify.baidu.com/cgi-bin/' in html:
            time.sleep(600)
        else:
            break

    #如果该关键词没有搜索结果（也可能是其它特殊情况，如百度页面改版）
    try:
        urls = re.findall('&lt;h3 class=&quot;t&quot;.*?href=&quot;(.*?)&quot;', html)
    except:
        f.write('%s\t%d\t%s\n' % (keyword, -1, '-'))
        continue

    #如果在前100名找到网站，则find=True
    find = False

    #在SERP上面的URL中，寻找网站并确定排名
    for pos, url in enumerate(urls, 1):
        if site in url:
            f.write('%s\t%d\t%s\n' % (keyword, pos, url))
            find = True
            break

    #如果前100名没有找到网站
    if not find:    #更标准的写法是if find==False:
        f.write('%s\t%d\t%s\n' % (keyword, -1, '-'))

    delay = random.randint(1,2) #随机设定延时时间为1秒或2秒
    time.sleep(delay)   #等待x秒以后继续查询下一个词的排名
</pre>
<p>这段代码即可监控排名并收集数据。它的使用命令如：python cron.py semwatch.org keywords.txt</p>
<p>在运行之前，先要把关键词按行分隔，保存成txt文件，并在运行参数中让脚本去读取它。每次运行之后，会在/home/rank/文件夹下，创建一个类似1970-01-01.csv这样文件名的文件，保存着当日的关键词排名情况。</p>
<p>为了让排名查询能自动化，可以将脚本设置为Linux的计划任务。在终端敲入：crontab -e，即可进入对于计划任务的编辑（它也使用一段脚本控制，而非Windows是图形界面）。为此必须要对VIM编辑器有最基础的了解，至少要能把字打上去并保存，可参考：<a href="http://ooxx.me/basic-vi.orz">http://ooxx.me/basic-vi.orz</a></p>
<p>在crontab输入并保存：00 05 * * * python cron.py semwatch.org keywords.txt</p>
<p>此处为了简化一些Linux的环境变量的问题，需要将cron.py, curl.py, keywords.txt三个文件，都放到~文件夹下。crontab的默认执行路径便是~。</p>
<p>前面一段命令的意思是在每日05:00自动执行脚本。当然需要计算机是处于开机的状态，也因此推荐使用一般不会关机的VPS来做这些监控类任务。此外需要注意的是系统的时间，VPS上面的时区可能和本地不同，可以在终端下使用date命令来确认。</p>
<p>至此日常排名数据的收集已经完成了，但光收集肯定不行，还需要分析。分析可以是各个角度的，这里以最常用的举例，分析网站关键词排名整体上升或下降的趋势。代码很简单：</p>
<p>analyse.py</p>
<pre class="brush: python; title: ; notranslate">
# -*- coding:utf-8 -*-
import os

data = {}

for current in os.walk('/home/rank/'):
    file_name = current[2][0]

    date = file_name[:-4]
    data[date] = 0

    for line in open('/home/rank/%s' % file_name):
        keyword, pos, url = line.rstrip().split('\t')
        pos = int(pos)
        if pos!=-1:
            data[date] += 100 - pos

for date in data:
    print '%s\t%d' % (date, data[date])
</pre>
<p>以一个数值的形式来量化整体的排名，数值越高则代表整体排名越好。可以直接运行python analyse.py，看到分析结果。但是光这样的分析往往是不够的，因为数字不是很形象，一般生成图表会好得多。</p>
<p>尽管结合Google Chart Tools等API，可以自动生成图表，但多数情况下不推荐这么做，因为比较麻烦。除非这些数据需要面向他人，或是需要每天都去分析排名趋势数据。</p>
<p>一般来说可以这么做：python analyse.py &gt; data.csv</p>
<p>这条命令结合了Linux里面的重定向&gt;，此时程序不会再输出内容到屏幕上，而是写入到data.csv文件中。之后即可使用如LibreOffice Calc（Linux下类似Excel的软件）打开它，生成Line Chart来以图形化的方式观察分析数据。</p>
<p><strong>思路扩展</strong></p>
<p>一般来说需求决定技术做法，但这里还是推荐初学者选下面的任意一个需求并实现它，不管目前是否有用。因为熟悉一门程序语言最好的方法是多写：</p>
<p>最简单的扩展，将收集脚本从面向百度的改为可用于Google的。</p>
<p>可以再写一个分析脚本，使用类似Google Analytics的高级细分的方式，做URL的筛选功能。目前监控的是整个网站的流量趋势，但在加入了筛选功能以后，可以统计诸如/article/和/photo/栏目不同的流量趋势；也可对于同类栏目进行划分，作为对于AB测试的效果追踪。</p>
<p>可以再改进收集脚本，辅以关键词的搜索量与对于特定排名位置的大致点击率，去估算网站所获得的SEO流量的话，可以更全面的了解其情况。</p>
<p>可以再大幅改进收集脚本，将SERP上面所有出现的网站的排名都进行统计，则可以完全把握竞争对手的动态。结合一些其它方面的监控以后，可以观察到竞争对手绝大多数站内对SEO有意义的修改，并及时跟进。（此时数据的储存方式最好用数据库来代替CSV，如使用MongoDB）</p>
<p>如果排名趋势追踪的需求非常重要的话，可以考虑做邮件每日报告及邮件预警之类功能。Python里面使用SMTP很容易，结合第三方邮箱的服务即可方便的发邮件。</p>
<p><strong>技术扩展</strong></p>
<p>文中涉及到了一些Python模块路径及Linux环境变量的问题，虽然一般情况下把文件都放在~文件夹下面是可以的，但毕竟这样子文件多了会很乱，可以去补充相关方面的知识。</p>
<p>文中提到了几个模块，比如os和datetime等。个人经验是其中os模块用得不多，偶尔需要用的时候可以百度一下寻找使用方法。而datetime平常用的不少，这些最好稍看下官方文档，对使用到的几个函数要了解：<a href="http://docs.python.org/library/datetime.html">http://docs.python.org/library/datetime.html</a></p>
<p>pycurl模块的使用，除了程序范畴之外，它还考验对于Web的基础知识。比如REFERER等是什么含义一定要理解，参见HTTP头信息有关的知识点。</p>
<p>不管是否选择深入学习VIM编辑器，一定要牢记其打字和保存的方法，Linux里面很多东西只能靠它编辑。</p>
<p>虽然文章中未提到，但采集数据中经常会遇到文字编码问题。UTF-8, GB2312等之间大致有什么区别、Unicode又代表什么、Python里面怎么转换它们等，这些都需参考相关资料。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="案例分析：排名到底有多大关系？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2F%25E6%25A1%2588%25E4%25BE%258B%25E5%2588%2586%25E6%259E%2590%25EF%25BC%259A%25E6%258E%2592%25E5%2590%258D%25E5%2588%25B0%25E5%25BA%2595%25E6%259C%2589%25E5%25A4%259A%25E5%25A4%25A7%25E5%2585%25B3%25E7%25B3%25BB%25EF%25BC%259F%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022446.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">案例分析：排名到底有多大关系？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="网站速度将会影响排名" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F11%2Fsite-speed-may-soon-affect-google-page-ranking%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060702.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">网站速度将会影响排名</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Google将降低关键词域名对于网站排名的权重" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F03%2Fgoogle-may-lower-rankings-of-keyword-domains%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12020799.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Google将降低关键词域名对于网站排名的权重</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="搜索排名变化，怎么办？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F09%2Fhow-to-deal-with-rank-change%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022367.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">搜索排名变化，怎么办？</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://semwatch.org/2012/04/monitoring-rank/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Python程序语言快速上手教程</title>
		<link>http://semwatch.org/2012/04/learning-python/</link>
		<comments>http://semwatch.org/2012/04/learning-python/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 08:18:26 +0000</pubDate>
		<dc:creator>zero</dc:creator>
				<category><![CDATA[搜索优化SEO]]></category>

		<guid isPermaLink="false">http://semwatch.org/?p=5750</guid>
		<description><![CDATA[本文是面向SEO人群的Python程序语言入门教程，也适用于其他没有程序基础但想学习些程序，以解决简单的实际应用需求的人群。在后面会尽量用最基础的角度来介绍这门语言。 本来打算从网上找一篇入门教程，但因为Python很少是程序员的第一次接触程序所学的语言，所以网上现有的教程多不是很基础，还是决定自己写下这些。 如果没有程序基础的话，可能会觉得本文涵盖的内容有点多。对照大学里面常教的C语言的教学速度，本文大约有四五个课时的内容；对照网上程序类的视频教程，大致相当于两三个小时的内容；对于翻一本程序书籍，大约相当于翻一个小时书。也因此，如果有深入学习的打算的话，为了效率还是推荐看书。 如果暂时不能理解本文中的一些内容也没关系，因为都是一些经常会用到的基础知识，在实际编写代码的过程中会一直遇到。后面会大约有两三篇关于实用代码编写的文章，可以选择那时再对这些知识加深印象。 但如果是觉得技术对于SEO没有必要而对本文没有兴趣的话，试问打算将SEO作为自己多久的职业？如果打算真正将它做好的话，在至少有上万小时需要用去的精力里面，从里面抽几十几百小时去学习些技术应该是合情合理的。 若因文章有什么没表述清楚而导致无法理解，请务必帮忙提出。第一次写程序类的较完整的教程，难免有疏漏之处。 为什么学习Python 如果决定学习一些技术来辅助SEO的话，对于程序语言至少在我看来Python可以算是首选。 其一、Python入门相对简单 如果谁在大学课程里面接触过C语言但对程序了解不多的话，或许会觉得程序就是像C那么麻烦，其实不然，学了具有美感的Python代码以后就会知道C代码又臭又长。就算完全没接触过程序也没关系，Python本身就适合作为程序的入门选择。 我虽然很早就有写程序，但那时是兴趣使然，从未深入过，正式接触程序是接触SEO以后的事情，大约学了几个小时以后就能写些简单的采集程序，到现在只要能想到需求就很少有技术无法实现的。所以没什么有基础没基础的问题在，无论什么的基础都是需要自己打下的。 其二、Python代码非常灵活 来看一段非常常用的代码示例，如果没有程序基础的话会看不懂这些代码，但暂时没关系，看代码行数也能对比出代码简洁性 PHP： Python： Python代码的第2行叫做“列表推导”，它提供了不少像这样便利的语言特性可以使得代码非常简洁。 尽管语法灵活并非总是好事，灵活的代码写法意味着每个人写出来的代码往往风格迥异，会把团队成员的水平差距拉大而不利于团队开发。但对于小型SEO应用需求一般都是个人开发，此时代码的书写效率比起团队合作性而言更重要。 其三、Python使用广泛 Python在程序语言里面受欢迎的程度大约是5-10位左右。排在其之前的有C#, Java, PHP等，但很多时候不是因为它们更强大，而是因为前面提到的原因，它们的代码显得相对不是很灵活从而适合团队开发，所以才更受欢迎。 一般来说，多数提供API的网络服务都会提供Python接口（如百度网盟、Amazon云服务等），而另一些比Python某些方面更强的语言则没有这么广泛的支持度，比如代码更加灵活一些的GO语言。（多数Web服务的API接口有：C#、PHP、Java、Python、Ruby、Perl，所以一般情况下选择其中至少一种语言学习） Python的模块也非常多，有许多既有模块意味着可以少做很多事情。比如下载一个网页，在很多语言里面都需要5-10行代码，而Python仅需两行： 另外有意思的是以前Google限制过自己内部使用Python语言进行开发。原因有二：一、因为Python编写效率高，之前被其过多的运用；二、Python语言的执行效率较慢。而对于SEO，却正是最需要注重编写效率而一般无需在意执行效率的。 至此废话了不少，但兴趣往往是学习的最好动力，希望没有白白废话 安装环境与配置 Python程序和普通程序略有不一样，通常情况下没有可以直接在Windows下面双击运行的exe文件，虽然并非无法编译成exe但相对较麻烦，实际运用中很少会去如此操作。 Python程序就是一段文字代码，保存到后缀名为.py的文件里面。在电脑安装了Python的运行环境以后，方可以运行py文件。（其实很多程序都依赖于运行环境，最常见的是.net Framework，只不过这个在Windows上预装了，一般感觉不到罢了） 对于Windows系统需要安装运行环境，Linux系统则一般自带Python无需配置。 Python运行环境的下载链接为：http://python.org/getit/ 在这个页面上，通常是在第一个下载链接，寻找并下载：Python 2.7.x Windows Installer (Windows binary &#8212; does not include source) 需要注意的是下载的最好是2.7.x版本（x代表任意数值，2.7这个大版本都是类似的），而Python 3以上的版本和先前版本区别较大，对于初学者不建议使用。 下载后安装，没什么需要特别注意的地方。一般安装在默认路径，即c:\python27\，不要将之放在目录层级很深的文件夹，不然运行的时候比较麻烦。 操作系统 前面已经提到，Python可以在Windows及Linux系统下运行，它还支持更多系统，如Mac等，甚至也可以在越狱过的iPhone等设备上面编写并运行Python程序。 但因为Python的一个主要强大之处在于其模块的支持，有了模块就可以方便的做很多事情。而模块的配置在Windows等系统里面往往有些麻烦，Linux往往容易得多，所以过了入门阶段以后，推荐在Linux环境下进行开发。 Linux环境的搭建有三种选择： 1.本机安装Linux系统。适合在Linux下长期工作的人，需要对Linux的基础知识有一定的了解。主要缺点是总有些Windows里面才能运行的程序，偶尔需要切换系统。我主要是在这样的环境下工作。 2.在Windows里面安装VMware等虚拟机，然后在虚拟机里面安装使用Linux。适合初学者，但因为虚拟机的关系，除非计算机配置很好，不然两边系统的运行效率都会比较低下。且虚拟机不利于塑造学习Linux的气氛，因为用虚拟机的时候碰到问题，多数人会倾向用Windows解决而非用Linux，那么就较难熟悉它。个人不怎么推荐这种选择。 3.买一台Linux的VPS，使用SSH远程操作。主要优点是在工作及家里都可以很方便的连上服务器，不用每天把程序、数据等随着U盘之类的带来带去；也可以在不影响Windows使用的情况下使用Linux。但缺点同样明显，没有图形界面对入门者不友好；因为网络延时的关系，写代码的效率经常受影响等等。对于初学者，个人比较推荐这个解决方案。 至于VPS的购买，推荐Linode或PhotonVPS等，大约每月50-150RMB能买一个可以用来书写运行普通程序的VPS，也可以同时在上面放两三个小网站。 Linux有很多发行版可以选择来安装，如Ubuntu，Fedora等。 对于在本机上搭建Linux环境时，因为拥有图形界面，若是工作为主要目的，推荐安装Fedora。它和服务器最常用的CentOS系统同出Red [...]<table class="wumii-related-items" cellspacing="0" cellpadding="2" border="0" width="100%" style="clear: both;">
    
    <tr>
        <td ><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F07%2Fcrawling-and-indexing%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">视频教程：抓取与索引</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">全自动监控网站关键词排名（Python实现）</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F11%2F%25E3%2580%258Agoogle-seo-%25E5%2585%25A5%25E9%2597%25A8%25E6%2595%2599%25E7%25A8%258B%25E3%2580%258B%25E6%259B%25B4%25E6%2596%25B0%25E4%25B8%25AD%25E6%2596%2587%25E7%2589%2588%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">《Google SEO 入门教程》更新中文翻译版</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F07%2Flatest-basic-seo-course%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">最新 SEO 基础教程</font>
                    </a>
                </td>
            </tr>
    
    <tr>
        <td  align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>本文是面向SEO人群的Python程序语言入门教程，也适用于其他没有程序基础但想学习些程序，以解决简单的实际应用需求的人群。在后面会尽量用最基础的角度来介绍这门语言。</p>
<p><span id="more-5750"></span></p>
<p>本来打算从网上找一篇入门教程，但因为Python很少是程序员的第一次接触程序所学的语言，所以网上现有的教程多不是很基础，还是决定自己写下这些。</p>
<p>如果没有程序基础的话，可能会觉得本文涵盖的内容有点多。对照大学里面常教的C语言的教学速度，本文大约有四五个课时的内容；对照网上程序类的视频教程，大致相当于两三个小时的内容；对于翻一本程序书籍，大约相当于翻一个小时书。也因此，如果有深入学习的打算的话，为了效率还是推荐看书。</p>
<p>如果暂时不能理解本文中的一些内容也没关系，因为都是一些经常会用到的基础知识，在实际编写代码的过程中会一直遇到。后面会大约有两三篇关于实用代码编写的文章，可以选择那时再对这些知识加深印象。</p>
<p>但如果是觉得技术对于SEO没有必要而对本文没有兴趣的话，试问打算将SEO作为自己多久的职业？如果打算真正将它做好的话，在至少有上万小时需要用去的精力里面，从里面抽几十几百小时去学习些技术应该是合情合理的。</p>
<p>若因文章有什么没表述清楚而导致无法理解，请务必帮忙提出。第一次写程序类的较完整的教程，难免有疏漏之处。</p>
<p><strong>为什么学习Python</strong></p>
<p>如果决定学习一些技术来辅助SEO的话，对于程序语言至少在我看来Python可以算是首选。</p>
<p>其一、Python入门相对简单</p>
<p>如果谁在大学课程里面接触过C语言但对程序了解不多的话，或许会觉得程序就是像C那么麻烦，其实不然，学了具有美感的Python代码以后就会知道C代码又臭又长。就算完全没接触过程序也没关系，Python本身就适合作为程序的入门选择。</p>
<p>我虽然很早就有写程序，但那时是兴趣使然，从未深入过，正式接触程序是接触SEO以后的事情，大约学了几个小时以后就能写些简单的采集程序，到现在只要能想到需求就很少有技术无法实现的。所以没什么有基础没基础的问题在，无论什么的基础都是需要自己打下的。</p>
<p>其二、Python代码非常灵活</p>
<p>来看一段非常常用的代码示例，如果没有程序基础的话会看不懂这些代码，但暂时没关系，看代码行数也能对比出代码简洁性 <img src='http://semwatch.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PHP：</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$list_1 = array(1,2);
$list_2 = array();
foreach ($list_1 as $current) {
	array_push($list_2, $current+1);
}
print_r($list_2);
?&gt;
</pre>
<p>Python：</p>
<pre class="brush: python; title: ; notranslate">
list_1 = [1,2]
list_2 = [current+1 for current in list_1]
print list_2
</pre>
<p>Python代码的第2行叫做“列表推导”，它提供了不少像这样便利的语言特性可以使得代码非常简洁。</p>
<p>尽管语法灵活并非总是好事，灵活的代码写法意味着每个人写出来的代码往往风格迥异，会把团队成员的水平差距拉大而不利于团队开发。但对于小型SEO应用需求一般都是个人开发，此时代码的书写效率比起团队合作性而言更重要。</p>
<p>其三、Python使用广泛</p>
<p>Python在程序语言里面受欢迎的程度大约是5-10位左右。排在其之前的有C#, Java, PHP等，但很多时候不是因为它们更强大，而是因为前面提到的原因，它们的代码显得相对不是很灵活从而适合团队开发，所以才更受欢迎。</p>
<p>一般来说，多数提供API的网络服务都会提供Python接口（如百度网盟、Amazon云服务等），而另一些比Python某些方面更强的语言则没有这么广泛的支持度，比如代码更加灵活一些的GO语言。（多数Web服务的API接口有：C#、PHP、Java、Python、Ruby、Perl，所以一般情况下选择其中至少一种语言学习）</p>
<p>Python的模块也非常多，有许多既有模块意味着可以少做很多事情。比如下载一个网页，在很多语言里面都需要5-10行代码，而Python仅需两行：</p>
<pre class="brush: python; title: ; notranslate">
import urllib2
print urllib2.urlopen('http://g.cn/').read()
</pre>
<p>另外有意思的是以前Google限制过自己内部使用Python语言进行开发。原因有二：一、因为Python编写效率高，之前被其过多的运用；二、Python语言的执行效率较慢。而对于SEO，却正是最需要注重编写效率而一般无需在意执行效率的。</p>
<p>至此废话了不少，但兴趣往往是学习的最好动力，希望没有白白废话 <img src='http://semwatch.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>安装环境与配置</strong></p>
<p>Python程序和普通程序略有不一样，通常情况下没有可以直接在Windows下面双击运行的exe文件，虽然并非无法编译成exe但相对较麻烦，实际运用中很少会去如此操作。</p>
<p>Python程序就是一段文字代码，保存到后缀名为.py的文件里面。在电脑安装了Python的运行环境以后，方可以运行py文件。（其实很多程序都依赖于运行环境，最常见的是.net Framework，只不过这个在Windows上预装了，一般感觉不到罢了）</p>
<p>对于Windows系统需要安装运行环境，Linux系统则一般自带Python无需配置。</p>
<p>Python运行环境的下载链接为：<a href="http://python.org/getit/">http://python.org/getit/</a></p>
<p>在这个页面上，通常是在第一个下载链接，寻找并下载：Python 2.7.x Windows Installer (Windows binary &#8212; does not include source)</p>
<p>需要注意的是下载的最好是2.7.x版本（x代表任意数值，2.7这个大版本都是类似的），而Python 3以上的版本和先前版本区别较大，对于初学者不建议使用。</p>
<p>下载后安装，没什么需要特别注意的地方。一般安装在默认路径，即c:\python27\，不要将之放在目录层级很深的文件夹，不然运行的时候比较麻烦。</p>
<p><strong>操作系统</strong></p>
<p>前面已经提到，Python可以在Windows及Linux系统下运行，它还支持更多系统，如Mac等，甚至也可以在越狱过的iPhone等设备上面编写并运行Python程序。</p>
<p>但因为Python的一个主要强大之处在于其模块的支持，有了模块就可以方便的做很多事情。而模块的配置在Windows等系统里面往往有些麻烦，Linux往往容易得多，所以过了入门阶段以后，推荐在Linux环境下进行开发。</p>
<p>Linux环境的搭建有三种选择：</p>
<p>1.本机安装Linux系统。适合在Linux下长期工作的人，需要对Linux的基础知识有一定的了解。主要缺点是总有些Windows里面才能运行的程序，偶尔需要切换系统。我主要是在这样的环境下工作。</p>
<p>2.在Windows里面安装VMware等虚拟机，然后在虚拟机里面安装使用Linux。适合初学者，但因为虚拟机的关系，除非计算机配置很好，不然两边系统的运行效率都会比较低下。且虚拟机不利于塑造学习Linux的气氛，因为用虚拟机的时候碰到问题，多数人会倾向用Windows解决而非用Linux，那么就较难熟悉它。个人不怎么推荐这种选择。</p>
<p>3.买一台Linux的VPS，使用SSH远程操作。主要优点是在工作及家里都可以很方便的连上服务器，不用每天把程序、数据等随着U盘之类的带来带去；也可以在不影响Windows使用的情况下使用Linux。但缺点同样明显，没有图形界面对入门者不友好；因为网络延时的关系，写代码的效率经常受影响等等。对于初学者，个人比较推荐这个解决方案。</p>
<p>至于VPS的购买，推荐Linode或PhotonVPS等，大约每月50-150RMB能买一个可以用来书写运行普通程序的VPS，也可以同时在上面放两三个小网站。</p>
<p>Linux有很多发行版可以选择来安装，如Ubuntu，Fedora等。</p>
<p>对于在本机上搭建Linux环境时，因为拥有图形界面，若是工作为主要目的，推荐安装Fedora。它和服务器最常用的CentOS系统同出Red Hat系，很多地方比较接近，熟悉它对于熟悉CentOS也有较大助益。</p>
<p>如果在本机安装，且有时会将Linux系统用作观看视频等娱乐之用的话，推荐Ubuntu，它在日常使用方面略胜Fedora一筹。</p>
<p>对于VPS上面搭建Linux，则推荐CentOS系统，因为它使用最广泛，所以各种软件对其的支持往往更好。</p>
<p>对应Linux环境解决方案1，一般使用U盘加载iso镜像进行安装；对于解决方案2，一般直接由虚拟机软件加载iso镜像安装；对于解决方案3，一般VPS都可在其后台直接选择操作系统无需自己安装，比较方便。</p>
<p><strong>编辑器</strong></p>
<p>书写代码前面首先需要有一个合适的编辑器。尽管Windows自带的记事本也不是不可以使用，但编写程序时会非常不顺手。</p>
<p>对于Windows系统的编辑器，较简单的我比较推荐Notepad++，当然也可以选择更流行的UltraEdit。</p>
<p>也可以使用IDE，这是用来开发软件项目的集成环境的统称，它在开发大型项目时具有较大优势，但在处理小型需求时可能显得略有不灵活。IDE里面比较好的有Eclipse，加上PyDev插件即可开发Python程序，它在Windows和Linux里面皆可以使用。</p>
<p>如果平常需要书写的代码量很大，或是对自己的学习能力较有自信的话，对于Linux推荐Vim，Windows则推荐gVim（Vim的图形界面）。它和普通编辑器书写代码有极大的不同之处，往往需要几天的学习时间与几个月的熟练时间，但书写代码的效率一般可以快不少。</p>
<p><strong>开始编写程序</strong></p>
<p><strong>Hello World!</strong></p>
<p>&#8220;Hello World&#8221;最早的出处是计算机领域的最经典书籍之一——《The C Programming Language》，后来被广泛沿用。&#8221;Hello World&#8221;程序的目的只是在屏幕上输出一个&#8221;Hello World&#8221;，尽管很简单，当它作为每个人第一个所写的程序时还是有着较大的意义。</p>
<p>打开编辑器，输入一行：（友情提示：复制粘贴不利记忆）</p>
<pre class="brush: python; title: ; notranslate">
print &quot;Hello World!&quot;
</pre>
<p>完毕。保存文件到c:\hello.py（路径随意）。</p>
<p>按Win + R快捷键，打开“运行”，输入CMD，回车，打开命令行提示符。（Linux图形界面的话是Ctrl+Alt+T来打开终端）</p>
<p>输入：</p>
<p>(Windows)<br />
c:\python27\python.exe c:\hello.py</p>
<p>(Linux)<br />
python 路径/hello.py</p>
<p>可以看到程序运行并显示了一行“Hello World!”。至此，第一个程序完成了。</p>
<p><img src="http://semwatch.org/wp-content/uploads/2012/04/hello-world.png" width="538" height="220" /></p>
<p><strong>变量与赋值</strong></p>
<pre class="brush: python; title: ; notranslate">
s = 'Hello World!'
print s
</pre>
<p>程序输出：<br />
Hello World!</p>
<p>上述代码，s称为变量；第一行所做的操作叫做赋值。</p>
<p>再来个例子加深印象：</p>
<pre class="brush: python; title: ; notranslate">
a = 1
b = 2
print a + b
</pre>
<p>程序输出：<br />
3</p>
<p><strong>函数</strong></p>
<pre class="brush: python; title: ; notranslate">
def hello(name):
	s = 'Hello ' + name + '!'
	return s
print hello('world')
print hello('semwatch')
</pre>
<p>程序输出：<br />
Hello world!<br />
Hello semwatch!</p>
<p>函数是用来包装一系列的行为的，通过传递一个或多个参数进入函数（def hello(name)），然后函数再返回一个计算之后的数值（return s）。</p>
<p>于是print hello(&#8216;world&#8217;)就相当于输出hello函数运行之后的运算结果，即输出Hello world!</p>
<p>可以再看这个例子来加深理解：</p>
<pre class="brush: python; title: ; notranslate">
def add_num(a, b)
	return a + b
print add_num(1, 2)
print add_num(2, 3)
</pre>
<p>程序输出：<br />
3<br />
5</p>
<p><strong>循环及判断</strong></p>
<p>后面提到的for循环、while循环及if判断，这是所有程序语言里面的基础，务必完全掌握。</p>
<p>（Python里面没有其他语言常有的do while循环，也没switch case判断）</p>
<p><strong>for循环：</strong></p>
<p>PHP范例：</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
for($i=0;$i&lt;10;$i++) {
	echo &quot;$i\n&quot;;
}
?&gt;
</pre>
<p>之所以这里举一个PHP的例子，是因为多数程序语言的for循环都和该例是类似的语法，先以这种形式举例。</p>
<p>应该较容易理解，给变量i赋值0($i=0)，每次循环的时候+1($i++)，在i小于10的时候就一直循环($i&lt;10)，所以循环10次。</p>
<p>echo语句负责把每次循环时候的数字输出，此例中会依次输出0-9这些数字，不过没必要研究echo语法，只需理解for循环的概念就行了。</p>
<p>Python的for循环语法比较另类，但也很简洁：</p>
<pre class="brush: python; title: ; notranslate">
for i in range(10):
	print i
</pre>
<p>这两句语句会和前面一样，依次输出0-9这些数字，且print语句会自动每次输出后换行。</p>
<p><strong>while循环：</strong></p>
<pre class="brush: python; title: ; notranslate">
i = 0
while i &lt; 10:
	i = i + 1
	print i
</pre>
<p>代码的意思是，先给i赋值0，然后当i小于10的时候，不断执行循环体里面的内容。此处即为将i的值加1，并输出i。</p>
<p>运行后输出的结果依次是0-9几个数字。</p>
<p><strong>if判断：</strong></p>
<pre class="brush: python; title: ; notranslate">
i = 1
if i &lt; 2:
	print &quot;i&lt;2&quot;
else:
	print &quot;i&gt;=2&quot;
</pre>
<p>程序输出：<br />
i&lt;2</p>
<p>程序先给i赋值1，然后判断i是否小于2，如果小于2则输出i&lt;2，不然输出i&gt;=2。</p>
<p>另外等于和不等于的判断符号是如下的：</p>
<pre class="brush: python; title: ; notranslate">
i = 1
if i == 1:
	print &quot;i=1&quot;
elif i != 1:
	print &quot;i!=1&quot;
</pre>
<p>等于是==符号，这点容易混淆。使用=符号在多数语言里面会产生一些问题，而在Python里面会直接视为代码错误。而不等于符号是!=，也可以使用&lt;&gt;，但&lt;&gt;号在如今的程序语言里面使用越来越少，也可能在Python的日后版本里被弃用，所以一般推荐使用!=。</p>
<p>上面代码中第三行elif是else if的简写。意为如果i==1没有满足的话，就继续判断i!=1是否满足。</p>
<p><strong>列表与字典</strong></p>
<p>多数语言都有“数组”，它是一个存着多个数值的变量。而Python没有，类似的是“列表”和“字典”等。</p>
<p>如果有PHP基础的话，看下以下对比就可以很快理解它们：</p>
<p>列表：</p>
<p>PHP</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$l = array(1,2,3);
?&gt;
</pre>
<p>Python</p>
<pre class="brush: python; title: ; notranslate">
l = [1,2,3]
</pre>
<p>字典：</p>
<p>PHP</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$d = array(
	'a' =&gt; 1,
	'b' =&gt; 2,
	'c' =&gt; 3,
);
?&gt;
</pre>
<p>Python</p>
<pre class="brush: python; title: ; notranslate">
d = {
	'a': 1,
	'b': 2,
	'c': 3,
}
</pre>
<p>如果没有其他语言基础的话，通过实际代码来理解列表及字典或许更合适。</p>
<p>列表：</p>
<pre class="brush: python; title: ; notranslate">
l = [1,2,3]
for current in l:
	print current
</pre>
<p>运行的结果会依次输出1-3这些数字。（Python里面没有PHP的foreach语法，全都使用for完成）</p>
<p>字典：</p>
<pre class="brush: python; title: ; notranslate">
d = {
	'a': 1,
	'b': 2,
	'c': 3,
}
for key in d:
	print key
	print d[key]
</pre>
<p>运行的结果会输出a1b2c3，分六行显示。</p>
<p>解释下字典，字典的结构是这样的：</p>
<p>dict = {key: value, key2: value2, &#8230;}</p>
<p>for循环可以在每次循环的时候，把相应的key赋值给变量，如果要访问对应的value，就需要使用类似dict[key]这样的，即寻找dict里面对应key的value。</p>
<p>类似的，列表也有类似操作，如：</p>
<pre class="brush: python; title: ; notranslate">
l = [1,2,3]
print l[1]
</pre>
<p>运行输出：<br />
2</p>
<p>它的意思是输出列表l的第1项。需要注意的是，对于绝大多数程序语言，都是从第0项开始算的。即这里l[0]是1，l[1]是2，l[2]是3。</p>
<p><strong>字符串及切片</strong></p>
<p>字符串如其名，是一串字符。如print &#8220;Hello World!&#8221;就是输出字符串Hello World!。Python里面的字符串比较特殊，它和列表一样属于序列类型，很多使用方法上和列表一样。</p>
<pre class="brush: python; title: ; notranslate">
s = &quot;abc&quot;
print s[1]
</pre>
<p>运行结果会输出b。</p>
<p>根据这样的特性，可以衍生出一些简洁的代码运用。比如要输出&#8221;Hello World!&#8221;这个字符串的前5个字符的话，多数语言会和PHP类似是这样做的：</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$s = &quot;Hello World!&quot;;
echo substr($s,0,5);
?&gt;
</pre>
<p>而Python简单得多：</p>
<pre class="brush: python; title: ; notranslate">
s = &quot;Hello World!&quot;
print s[:5]
</pre>
<p>两段代码都会输出Hello。</p>
<p>其中的s[:5]使用了Python的“切片”特性，完整的写法应该是s[0:5]，但0可以省略，这里代表着输出这个序列索引号从0开始到5之前的内容。</p>
<p>当然列表也是可以使用切片的，如：</p>
<pre class="brush: python; title: ; notranslate">
l = [1,2,3]
print l[1:]
</pre>
<p>运行后输出[2,3]。</p>
<p>意味着从索引号1开始，输出到列表的最后。</p>
<p><strong>知识点汇总</strong></p>
<p>将前面所有的内容加上一些新的知识点，融合成一段代码。认真思考每一个输出的结果是如何出来的，就能更好的理解这些。因为知识点比较多，可以暂时不求甚解，但这些都是任何程序语言里面都会有的基础内容，最终是必须掌握的。</p>
<p>代码中，#号意味着注释的开始，这些内容不会被运行。</p>
<p>另外代码的第一行声明了代码编码为utf-8。因为注释中出现了非英文字符，所以就需要指定编码，不然程序会报错。</p>
<pre class="brush: python; title: ; notranslate">
# -*- coding:utf-8 -*-
str_1 = 'Hello'
str_2 = 'World!'

#以下语句都会输出Hello World!

#print语句中的逗号意味着不换行，而是用空格间隔它们
print str_1, str_2

#以下和上面一句是同样的效果
print str_1,
print str_2

#同样可以用字符串连接符
print str_1 + ' ' + str_2

#也可以用格式化操作符，它比前者更常用
#会将后面的变量依次替换到前面的%x上面
#%s指定替换为字符串，若替换整数则为%d，小数%f
print '%s %s' % (str_1, str_2)

#会输出00 11 22
for i in range(3):
	print '%d%d' % (i, i),
print ''	#输出一个空的字符串用于换行

#会输出11 22 33
for i in range(1, 4):
	print '%d%d' % (i, i),
print ''

#会输出00 22 44
for i in range(0, 5, 2):
	print '%d%d' % (i, i),
print ''

#会输出0 1 0 1 0
i = 0
while i &lt; 5:
	i += 1	#等同于i = i + 1
	if i % 2==0:	#如果i除2的余数为0
		print 1,
	else:
		print 0,
print ''

#会输出c
i = 3
if i==1:
	print 'a'
elif i==2:
	print 'b'
elif i==3:
	print 'c'
else:
	print 'error'

#会输出1 2 3 3 4 4 5 5 6
for i in range(10):
	i += 1
	print i,
	if i &lt; 3:
		continue	#如果i&lt;3则中断该次循环，从循环体的头部重新运行
	elif i &gt; 5:
		break	#如果i&gt;5则中断整个循环
	print i,
</pre>
<p><strong>最后</strong></p>
<p>虽然现在提及的是程序，但SEO要涉及的技术远不仅是程序。尽管很想从头开始提及所有应该学习的方面，无奈这是几本书都写不完的，单用几篇文章更无法穷尽。</p>
<p>在接下来的文章里面，将跳空一些知识点，如果读者没有相关基础，则需自行学习。之后将跳过的包括但不限于：</p>
<p>1. 基础Web知识，比如非ASCII字符集的URL需要编码等常识：<a href="http://www.w3school.com.cn/html/html_urlencode.asp">http://www.w3school.com.cn/html/html_urlencode.asp</a></p>
<p>2. 浏览器开发人员工具的运用，可以选择Chrome的开发人员工具、或Firefox的Firebug插件等，个人推荐用Chrome。尤其需要先了解其抓包功能，在采集数据的时候经常要用到。抓包功能在Chrome开发人员工具里面，对应的是&#8221;Network&#8221;选项卡。</p>
<p>3. 独立配置Python的pycurl模块。此处主要有两种选择，一种是在Windows系统安装Curl、再安装setuptools、最后安装模块，比较麻烦也不推荐，且以后其他模块在Windows里面配置可能也是这么麻烦。另一种选择即是配置一个Linux环境，在CentOS及Fedora等系统里面，执行：sudo yum install python-pycurl，在Ubuntu等系统里面，执行sudo apt-get install python-pycurl。之后将大量的使用到这个模块，所以务必配置好。Linux的入门命令可见：<a href="http://ooxx.me/common-ssh-commands.orz">http://ooxx.me/common-ssh-commands.orz</a></p>
<p>4. 了解正则表达式。它是用来处理字符串的强大工具，可以在百度上寻找资料对它做初步的了解，至少要先知道.*?和[\s\S]*?这两个的含义，它们在采集数据的过程中是最常用的。这是一个很不错但难度较高的正则教程，可能不是很适合初学：<a href="http://manual.phpv.net/regular_expression.html">http://manual.phpv.net/regular_expression.html</a></p>
<p>此外最好买一本Python书籍，虽然因为SEO没必要对程序涉及很深入，大多程序类书籍上的多数知识的重要性不高。比如每本书都会花大量篇幅去介绍面向对象编程的思路与实现，但SEO的多数需求往往只有几百行代码，一般都不太会去涉及这些。不过，一开始的一些基础知识学习的过程中，容易疏漏或者遗忘知识点，有一本书会好得多。</p>
<p>尚未找到比较适合SEO看的Python书籍。我自己手边有一本《Python核心编程》，应该说还可以吧。如果不确定买哪本的话，可以到这个论坛去找下pdf试看，它上面各类计算机书籍应该是相对最齐全的：<a href="http://club.topsage.com/forum-300-1.html">http://club.topsage.com/forum-300-1.html</a></p>
<p>但不要只看pdf，一般学一门语言至少备一本纸质书籍，它应该是在自己不清楚或忘记了哪些知识点以后，可以随时拿来翻看的工具书。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="2" border="0" width="100%" style="clear: both;">
    
    <tr>
        <td ><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F07%2Fcrawling-and-indexing%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">视频教程：抓取与索引</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Fmonitoring-rank%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">全自动监控网站关键词排名（Python实现）</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F11%2F%25E3%2580%258Agoogle-seo-%25E5%2585%25A5%25E9%2597%25A8%25E6%2595%2599%25E7%25A8%258B%25E3%2580%258B%25E6%259B%25B4%25E6%2596%25B0%25E4%25B8%25AD%25E6%2596%2587%25E7%2589%2588%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">《Google SEO 入门教程》更新中文翻译版</font>
                    </a>
                </td>
            </tr>
            <tr>
                <td style="margin: 0 !important; padding: 0 !important; line-height: 20px !important;">
                    <img border="0" src="http://static.wumii.com/images/widget/widget_solidPoint.gif">
                    <a target="_blank" style="text-decoration: none !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F07%2Flatest-basic-seo-course%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Flearning-python%2F">
                        <font size="-1" color="#333333" style="line-height: 1.65em; font-size: 12px !important;">最新 SEO 基础教程</font>
                    </a>
                </td>
            </tr>
    
    <tr>
        <td  align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://semwatch.org/2012/04/learning-python/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>以技术手段实现SEO需求</title>
		<link>http://semwatch.org/2012/04/tech-meets-seo/</link>
		<comments>http://semwatch.org/2012/04/tech-meets-seo/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 09:27:19 +0000</pubDate>
		<dc:creator>zero</dc:creator>
				<category><![CDATA[搜索优化SEO]]></category>

		<guid isPermaLink="false">http://semwatch.org/?p=5724</guid>
		<description><![CDATA[虽然很多时候对于SEO，一个简单的想法胜过高超的技术，但不代表技术是不必要的，很多需求都需要技术来实现。 估计所有人都会认同的一点是，既有的需求不应该因为技术的局限而妥协。忘记最早是在哪家公司的技术部招聘介绍里面看到这句话，觉得非常恰当。当打算做一件事以后，如果技术上稍稍受阻，就抛出一句“这么麻烦啊，不做了”导致前功尽弃的话，无论何时都是不好的事情。之所以技术需要存在，就是为了解决需求的。 而或许有争议的问题是，SEO的技术需求应该是SEO自己来做，还是让技术人员做？我的观点是，复杂的需求给技术人员做，因为若让SEO去实现那些东西往往会因为能力所限而效率很低；而简单的需求最好由SEO自己做，如果每天成堆的需求都需要沟通协助的话，对SEO和技术人员都会是较大的无谓精力消耗，导致了更多人会选择让需求因为技术而让步，继续使用纯人肉的方法做SEO。 很久以前我用易语言随手做了一个百度页面收录抽查的非常简陋的程序，当时只是毫不在意的在一个论坛上随便发了个帖子。然而当写出软件的近一年时，因为百度有更新导致了软件故障，当时每隔几天就有人给我汇报bug。最让人惊讶的是我在写出该软件后入职过两家公司，那两家公司都在用那个简陋的程序。因为SEO需求虽然存在着，却极少有技术去解决它。 比如关键词排名查询，通常情况下这看似很简单的任务却也不轻松，常见的需求如下：（仅为表达的更形象，故以分类信息网站举例） 单个关键词对应单个网站： 查询58同城“二手手机”这个词的排名 各类现有软件都能做到，我以前比较倾向于用观其关键词工具。 多个关键词对应单个网站：查询58同城对于“二手诺基亚手机”、“二手摩托罗拉手机”的排名 还是有比较多的软件可以做到，如前面提到的观其，但它在批量添加关键词这一点上有点麻烦，如果关键词很多就无法使用它。可代替的方案如Rank Tracker，据我所知它也是相对最出色的排名查询软件。 多个关键词一一对应多个网站：如果是站群的话会比较多的见到这问题，其他情况下比较少见 此时Rank Tracker也不好用了，因为对于它而言网站要一个个添加。此时可以选择追词，虫虫也内置了这个功能。 单个（或多个）关键词对应多个网站：查询58同城、赶集网、百姓网分别于“二手诺基亚手机”、“二手摩托罗拉手机”的排名 很遗憾至今我还没见到哪款软件完成这个功能，尽管它很容易实现。如果关键词X分别要查网站A, B, C在它上面的排名的话，在各种软件上，都需要查三次X的排名，分别找网站A, B, C的排名所在，很耗时间且容易被封IP。尽管这对于分析竞争对手的SEO情况而言是再常见不过的SEO需求。 而又比如数量到达千级万级的关键词如何查排名呢？这样查询很容易被搜索引擎封IP，在前面提到的各种软件中，只有Rank Tracker给出了解决方案。比如可以随机轮换伪造User-agent、间隔7-15秒查询一次关键词、使用HTTP代理进行查询等。但这依然不完善，在保证稳定情况下，Google只能每天查几千个词的排名，对于很多大型网站显然是远远不够的。比之高效得多的解决方案是本机网关IP的切换，而这目前只能用自己写的程序所实现。 除此之外，查排名的需求还可能有很多，比如将关键词排名汇总成历史图表、通过排名位置辅以搜索量来估算SEO流量（如爱站网所做的）等等，往往都是现有软件没有提供的。 而尽管写了这么多，对于自己按需开发的程序而言，这些加起来在功能上恐怕不超过500行代码。而对于我最常用的多关键词对应多网站，这个所有现有软件所没有的功能，用Python写出来大约是30多行代码。 所以认为稍学些技术是对于SEO存在着极大好处的，尤其是程序。 个人比较推荐Python，它也是日常辅助自己SEO的最常用工具。而且它的入门相对我接触过的所有语言中是最简单的，随便找一本书学习语法基础，并熟悉re（正则表达式）, threading（多线程）, pycurl（网络下载）这些模块以后，很快就能处理大多数不算复杂的SEO需求。尤其若有PHP基础则可以在极短的时间内掌握Python，推荐一个不错的网站：http://www.php2python.com/ 更流行的PHP也是不错的选择，对于做网站而言，因为它在国内被接受的程度很广泛，比起Python拥有非常大的优势。但在解决一些应用需求，尤其是采集类需求时，PHP相对显得薄弱一些。 接下来我会陆续整理自己写过的代码，并分享一部分出来，以供共同交流学习。<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="浅谈大型网站的SEO策略及如何执行" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F07%2Fbig-site-seo-strategy%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12015012.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">浅谈大型网站的SEO策略及如何执行</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="面包屑设计：以用户还是以 SEO 为中心？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F12%2Fbreadcrumbs-design-usability-or-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12120131.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">面包屑设计：以用户还是以 SEO 为中心？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="艰难的蜕变——中国 SEO 行业现状管窥（三）" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F12%2Fchina-seo-status-3%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12023322.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">艰难的蜕变——中国 SEO 行业现状管窥（三）</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="SEO的职责已经被升级了" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F07%2Fseo%25E7%259A%2584%25E8%2581%258C%25E8%25B4%25A3%25E5%25B7%25B2%25E7%25BB%258F%25E8%25A2%25AB%25E5%258D%2587%25E7%25BA%25A7%25E4%25BA%2586%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/07/27/19200151.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">SEO的职责已经被升级了</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>虽然很多时候对于SEO，一个简单的想法胜过高超的技术，但不代表技术是不必要的，很多需求都需要技术来实现。</p>
<p><span id="more-5724"></span></p>
<p>估计所有人都会认同的一点是，<strong>既有的需求不应该因为技术的局限而妥协。</strong>忘记最早是在哪家公司的技术部招聘介绍里面看到这句话，觉得非常恰当。当打算做一件事以后，如果技术上稍稍受阻，就抛出一句“这么麻烦啊，不做了”导致前功尽弃的话，无论何时都是不好的事情。之所以技术需要存在，就是为了解决需求的。</p>
<p>而或许有争议的问题是，<strong>SEO的技术需求应该是SEO自己来做，还是让技术人员做？</strong>我的观点是，复杂的需求给技术人员做，因为若让SEO去实现那些东西往往会因为能力所限而效率很低；而简单的需求最好由SEO自己做，如果每天成堆的需求都需要沟通协助的话，对SEO和技术人员都会是较大的无谓精力消耗，导致了更多人会选择让需求因为技术而让步，继续使用纯人肉的方法做SEO。</p>
<p>很久以前我用易语言随手做了一个百度页面收录抽查的非常简陋的程序，当时只是毫不在意的在一个论坛上随便发了个帖子。然而当写出软件的近一年时，因为百度有更新导致了软件故障，当时每隔几天就有人给我汇报bug。最让人惊讶的是我在写出该软件后入职过两家公司，那两家公司都在用那个简陋的程序。<strong>因为SEO需求虽然存在着，却极少有技术去解决它。</strong></p>
<p>比如关键词排名查询，通常情况下这看似很简单的任务却也不轻松，常见的需求如下：（仅为表达的更形象，故以分类信息网站举例）</p>
<p><strong>单个关键词对应单个网站：</strong> 查询58同城“二手手机”这个词的排名</p>
<p>各类现有软件都能做到，我以前比较倾向于用观其关键词工具。</p>
<p><strong>多个关键词对应单个网站：</strong>查询58同城对于“二手诺基亚手机”、“二手摩托罗拉手机”的排名</p>
<p><strong></strong> 还是有比较多的软件可以做到，如前面提到的观其，但它在批量添加关键词这一点上有点麻烦，如果关键词很多就无法使用它。可代替的方案如Rank Tracker，据我所知它也是相对最出色的排名查询软件。</p>
<p><strong>多个关键词一一对应多个网站：</strong>如果是站群的话会比较多的见到这问题，其他情况下比较少见</p>
<p><strong></strong>此时Rank Tracker也不好用了，因为对于它而言网站要一个个添加。此时可以选择追词，虫虫也内置了这个功能。</p>
<p><strong>单个（或多个）关键词对应多个网站：</strong>查询58同城、赶集网、百姓网分别于“二手诺基亚手机”、“二手摩托罗拉手机”的排名</p>
<p>很遗憾至今我还没见到哪款软件完成这个功能，尽管它很容易实现。如果关键词X分别要查网站A, B, C在它上面的排名的话，在各种软件上，都需要查三次X的排名，分别找网站A, B, C的排名所在，很耗时间且容易被封IP。尽管这对于分析竞争对手的SEO情况而言是再常见不过的SEO需求。</p>
<p>而又比如数量到达千级万级的关键词如何查排名呢？这样查询很容易被搜索引擎封IP，在前面提到的各种软件中，只有Rank Tracker给出了解决方案。比如可以随机轮换伪造User-agent、间隔7-15秒查询一次关键词、使用HTTP代理进行查询等。但这依然不完善，在保证稳定情况下，Google只能每天查几千个词的排名，对于很多大型网站显然是远远不够的。比之高效得多的解决方案是本机网关IP的切换，而这目前只能用自己写的程序所实现。</p>
<p>除此之外，查排名的需求还可能有很多，比如将关键词排名汇总成历史图表、通过排名位置辅以搜索量来估算SEO流量（如爱站网所做的）等等，往往都是现有软件没有提供的。</p>
<p>而尽管写了这么多，对于自己按需开发的程序而言，这些加起来在功能上恐怕不超过500行代码。而对于我最常用的多关键词对应多网站，这个所有现有软件所没有的功能，用Python写出来大约是30多行代码。</p>
<p>所以认为稍学些技术是对于SEO存在着极大好处的，尤其是程序。</p>
<p>个人比较推荐Python，它也是日常辅助自己SEO的最常用工具。而且它的入门相对我接触过的所有语言中是最简单的，随便找一本书学习语法基础，并熟悉re（正则表达式）, threading（多线程）, pycurl（网络下载）这些模块以后，很快就能处理大多数不算复杂的SEO需求。尤其若有PHP基础则可以在极短的时间内掌握Python，推荐一个不错的网站：<a href="http://www.php2python.com/">http://www.php2python.com/</a></p>
<p>更流行的PHP也是不错的选择，对于做网站而言，因为它在国内被接受的程度很广泛，比起Python拥有非常大的优势。但在解决一些应用需求，尤其是采集类需求时，PHP相对显得薄弱一些。</p>
<p>接下来我会陆续整理自己写过的代码，并分享一部分出来，以供共同交流学习。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="浅谈大型网站的SEO策略及如何执行" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F07%2Fbig-site-seo-strategy%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12015012.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">浅谈大型网站的SEO策略及如何执行</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="面包屑设计：以用户还是以 SEO 为中心？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F12%2Fbreadcrumbs-design-usability-or-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12120131.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">面包屑设计：以用户还是以 SEO 为中心？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="艰难的蜕变——中国 SEO 行业现状管窥（三）" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F12%2Fchina-seo-status-3%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12023322.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">艰难的蜕变——中国 SEO 行业现状管窥（三）</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="SEO的职责已经被升级了" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F07%2Fseo%25E7%259A%2584%25E8%2581%258C%25E8%25B4%25A3%25E5%25B7%25B2%25E7%25BB%258F%25E8%25A2%25AB%25E5%258D%2587%25E7%25BA%25A7%25E4%25BA%2586%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F04%2Ftech-meets-seo%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/07/27/19200151.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">SEO的职责已经被升级了</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://semwatch.org/2012/04/tech-meets-seo/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>SEO实践(6)——Yahoo的黑帽小技巧</title>
		<link>http://semwatch.org/2012/03/seo-practice-6/</link>
		<comments>http://semwatch.org/2012/03/seo-practice-6/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 09:24:20 +0000</pubDate>
		<dc:creator>zero</dc:creator>
				<category><![CDATA[搜索优化SEO]]></category>

		<guid isPermaLink="false">http://semwatch.org/?p=5699</guid>
		<description><![CDATA[一开始没有计划在该系列的文章中写黑帽的SEO技巧，毕竟黑帽并不值得推崇。但反过来，如果能通过简单的黑帽技巧来拓展思路的话，那也会是一件不错的事情。因为黑帽领域有时需要对于SEO涉及更深入，或许也能让人更深入的了解到SEO绝不仅限于目前被广泛流传的那些方法。 国内目前我看到的SEO方法多数都很单调。如外贸大多做站内搜索、分类信息大多交换友情链接，很少能看到像国外一些SEO优秀的网站那样具有新意的SEO做法。正是这些方法，让我觉得SEO是一件很有意思的事情，并因此投入其中。 具体的案例：http://autos.yahoo.com/ 推荐使用Chrome或Firefox(with FireBug插件)，对页面底下的文字进行下“审查元素”，如图： 注意看图中红色框起来的部分，它没有任何内容，只是放了几个HTML标签。 系列第二篇提到过，搜索引擎可能会用id及class的命名来判断某个区块是做什么用的，Yahoo Autos这个页面上如此做的目的就是告诉搜索引擎，这个区块是相关推荐区块。 相关推荐区块有什么意义？《搜索引擎——原理、实践与系统》一书中有提到过，网页上面区块大致是这么分的：正文、相关链接、还有无关的噪音区块（但实际搜索引擎会分得更细些，那本毕竟是老书了），而相关链接往往在正文下方。若反过来的话，相关链接上方的更可能是正文，这样判断正文的规则也是很合理的，因为正文很多时候比相关链接难提取。实际去做过正文提取的话，就会对其提取难度有更多的了解。 Yahoo这样做的最终目的是，确保&#60;div class=&#8221;descript&#8221;&#62;这个区块被搜索引擎认为是正文区块。 如果不是这么做的话，这一个区块的文字内容非常少，搜索引擎就很可能将网页上方那些字数比较多的区块作为正文，而那些内容和“car”这个主题不是很相关，对这个页面的SEO流量会很不利。 另外很有意思的是，Yahoo还很奔放的把它的页脚叫做了“yat-seo-foot”。 同样的思路，或许可以适用于更广泛的应用范围。就比如看上去最简单的企业站优化，原有页面上有一段啰唆的对SEO价值不大的文字，而客户不愿意改动，此时如果要保证自己添加的内容确实能起到SEO作用的话，就需要使用类似方法。虽然对于百度，Yahoo所用的黑帽技巧未必是直接适用的。但搜索引擎判断网页的正文，一般都是结合多种因素考虑的，那么只要SEO对常见因素有了解就不会有问题。 最后还有个或许会疑惑的问题，Yahoo用的这么隐蔽的SEO方法我是怎么得知的？近乎直觉。当看到Yahoo，它自己做搜索引擎的，SEO自然不会太差。而看到这个页面的页脚时想到，若不是SEO，谁会在页脚添加描述性文字呢？而若简单将其归为提升关键词密度而草草略过的话，至少是我从不推崇的方法。因此习惯性的查看了下源代码，最后就挖掘到本文所述的内容了。<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="浅谈大型网站的SEO策略及如何执行" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F07%2Fbig-site-seo-strategy%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12015012.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">浅谈大型网站的SEO策略及如何执行</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="7 个超棒的 Firefox SEO 插件" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F09%2Flist-of-great-firefox-plugins-for-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12021302.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">7 个超棒的 Firefox SEO 插件</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="2010年终：信息架构与SEO" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F12%2Finformation-arcbitecture-and-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12023044.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">2010年终：信息架构与SEO</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="SEO的职责已经被升级了" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F07%2Fseo%25E7%259A%2584%25E8%2581%258C%25E8%25B4%25A3%25E5%25B7%25B2%25E7%25BB%258F%25E8%25A2%25AB%25E5%258D%2587%25E7%25BA%25A7%25E4%25BA%2586%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/07/27/19200151.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">SEO的职责已经被升级了</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>一开始没有计划在该系列的文章中写黑帽的SEO技巧，毕竟黑帽并不值得推崇。但反过来，如果能通过简单的黑帽技巧来拓展思路的话，那也会是一件不错的事情。因为黑帽领域有时需要对于SEO涉及更深入，或许也能让人更深入的了解到SEO绝不仅限于目前被广泛流传的那些方法。</p>
<p><span id="more-5699"></span></p>
<p>国内目前我看到的SEO方法多数都很单调。如外贸大多做站内搜索、分类信息大多交换友情链接，很少能看到像国外一些SEO优秀的网站那样具有新意的SEO做法。正是这些方法，让我觉得SEO是一件很有意思的事情，并因此投入其中。</p>
<p>具体的案例：<a href="http://autos.yahoo.com/">http://autos.yahoo.com/</a></p>
<p>推荐使用Chrome或Firefox(with FireBug插件)，对页面底下的文字进行下“审查元素”，如图：</p>
<p><a rel="attachment wp-att-5700" href="http://semwatch.org/2012/03/seo-practice-6/yahoo/"><img class="alignnone size-full wp-image-5700" title="yahoo" src="http://semwatch.org/wp-content/uploads/2012/03/yahoo.png" alt="" width="615" height="379" /></a></p>
<p>注意看图中红色框起来的部分，它没有任何内容，只是放了几个HTML标签。</p>
<p><a href="http://semwatch.org/2012/02/seo-practice-2/">系列第二篇</a>提到过，搜索引擎可能会用id及class的命名来判断某个区块是做什么用的，Yahoo Autos这个页面上如此做的目的就是告诉搜索引擎，这个区块是<strong>相关推荐区块</strong>。</p>
<p>相关推荐区块有什么意义？《搜索引擎——原理、实践与系统》一书中有提到过，网页上面区块大致是这么分的：正文、相关链接、还有无关的噪音区块（但实际搜索引擎会分得更细些，那本毕竟是老书了），而相关链接往往在正文下方。若反过来的话，相关链接上方的更可能是正文，这样判断正文的规则也是很合理的，因为正文很多时候比相关链接难提取。实际去做过正文提取的话，就会对其提取难度有更多的了解。</p>
<p>Yahoo这样做的最终目的是，确保&lt;div class=&#8221;descript&#8221;&gt;这个区块被搜索引擎认为是正文区块。</p>
<p>如果不是这么做的话，这一个区块的文字内容非常少，搜索引擎就很可能将网页上方那些字数比较多的区块作为正文，而那些内容和“car”这个主题不是很相关，对这个页面的SEO流量会很不利。</p>
<p>另外很有意思的是，Yahoo还很奔放的把它的页脚叫做了“yat-seo-foot”。</p>
<p>同样的思路，或许可以适用于更广泛的应用范围。就比如看上去最简单的企业站优化，原有页面上有一段啰唆的对SEO价值不大的文字，而客户不愿意改动，此时如果要保证自己添加的内容确实能起到SEO作用的话，就需要使用类似方法。虽然对于百度，Yahoo所用的黑帽技巧未必是直接适用的。但搜索引擎判断网页的正文，一般都是结合多种因素考虑的，那么只要SEO对常见因素有了解就不会有问题。</p>
<p>最后还有个或许会疑惑的问题，Yahoo用的这么隐蔽的SEO方法我是怎么得知的？近乎直觉。当看到Yahoo，它自己做搜索引擎的，SEO自然不会太差。而看到这个页面的页脚时想到，若不是SEO，谁会在页脚添加描述性文字呢？而若简单将其归为提升关键词密度而草草略过的话，至少是我从不推崇的方法。因此习惯性的查看了下源代码，最后就挖掘到本文所述的内容了。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="浅谈大型网站的SEO策略及如何执行" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F07%2Fbig-site-seo-strategy%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12015012.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">浅谈大型网站的SEO策略及如何执行</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="7 个超棒的 Firefox SEO 插件" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F09%2Flist-of-great-firefox-plugins-for-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12021302.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">7 个超棒的 Firefox SEO 插件</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="2010年终：信息架构与SEO" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F12%2Finformation-arcbitecture-and-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12023044.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">2010年终：信息架构与SEO</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="SEO的职责已经被升级了" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2011%2F07%2Fseo%25E7%259A%2584%25E8%2581%258C%25E8%25B4%25A3%25E5%25B7%25B2%25E7%25BB%258F%25E8%25A2%25AB%25E5%258D%2587%25E7%25BA%25A7%25E4%25BA%2586%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-6%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/07/27/19200151.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">SEO的职责已经被升级了</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://semwatch.org/2012/03/seo-practice-6/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>SEO实践(5)——关键词排名浅析</title>
		<link>http://semwatch.org/2012/03/seo-practice-5/</link>
		<comments>http://semwatch.org/2012/03/seo-practice-5/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 13:10:36 +0000</pubDate>
		<dc:creator>zero</dc:creator>
				<category><![CDATA[搜索优化SEO]]></category>

		<guid isPermaLink="false">http://semwatch.org/?p=5678</guid>
		<description><![CDATA[在该SEO系列的第三篇文章《让网站对搜索引擎的用户友好》中，我提到了一句“将网站上更多有价值的信息以更好的形式展现给用户”。这是我将数千小时的精力花在SEO上面后得出的最主要的总结。近日新出的百度关于SEO的建议上，也极为类似的将SEO总结为：“SEO可以帮你将网站中的高质量内容更好的呈现给搜索引擎，获取更多流量”。 此处的措辞是很值得推敲的。因为诸如医疗行业会由SEO部门负责处理内容，所以我所说的里面，也将文字信息的创造和SEO连上了一些关系。而百度就写的更简单了当，它提出SEO应该做的，只是加强高质量内容的展现形式。 另外有意思的是百度提到“使之对搜索引擎和用户更加友好，并从中获取更多合理的流量。”，而我的说法是“使网站对搜索引擎友好、使网站对搜索引擎的用户友好。”。这里确切而言应该是以后者为准的，因为百度基于立场关系，不方便说这边指的“用户”是他们的用户而非网站用户罢了。 这些确确实实是SEO的本质。如系列第三篇提到的Amazon的“What Other Items Do Customers Buy After Viewing This Item?”推荐模块就是最典型的例子——它将合适的链接显示在了合适的地方，不用考虑任何无关的事情，只是这样就可以获得SEO的收效。 而最近自己入职了一家服务性公司，才真正意识到SEO整体水平之落后，关注的更多是没必要太关心的东西。数年经验的公司，做关键词排名的方法主要而言无非三点，标题出现关键词、页面出现文字内容并提升关键词密度、发外链。细节上虽然毕竟多年经验下来有所积累，也大体只是发外链的技巧等。无论如何，对于一个有多年经验的公司而言，还是不得不让人觉得大跌眼镜。 对于服务性公司而言，自然是和产品性公司有本质性区别的。前者的目标往往是只关键词排名，当关键词排名上去以后就能从客户那边收款；而后者SEO相应涉及的面要广得多，因为流量的提升方法中还有很多是独立于关键词的，就算是关键词排名也往往需要通过技术手段来批量实现（外贸站往往做的是上万级，少数SEO优秀的国外网站还会去做千万级的），极少接触单一关键词排名的提升问题。也因此认为自己或在单一关键词排名的问题上还存在着不足，才入职的服务性公司，当然从结论而言发现这是一个错误的决定。 比如公司有个“喷码机价格”的关键词，将着陆页安排在了一个普通的内页，但其它词排名都上去了，就它排名始终不上。 来看下“喷码机价格”这个词排名前列的网页： 1. www.hc360.com/chanpin/penmajijiage.html 2. www.qjy168.com/price/price.php?keyword=%C5%E7%C2%EB%BB%FA 3. www.21food.cn/quote/7653.html 4. www.leadjet.com.cn 5. www.net114.com/special-penmaji/ 6. www.qianlipm.com 7. www.qjy168.com/shop/disp_provide_9554535.html 8. www.pmj123.com 其中1、2、3、5、7几个网站的内页排名在上面，因为它们存在一个共性，页面上所连向的其它页面，多数标题里面都包含“价格”二字。这样，通过导出链接的关系，连带的极大幅度的提升了“价格”此词的权重，“喷码机价格”这个词在主页面的排名才能上去。 但如果“价格”此词的权重无法上去的话，“喷码机价格”的排名问题即近乎于转化成了“喷码机”这个词排名的竞争。因为根据搜索引擎的TF-IDF公式，“价格”此词IDF值极低，哪怕TF值提升，对最终权值的影响还是极小。为了详细阐述这个问题，先前我额外写了一篇较长的TF-IDF普及文章并提到了此例，这里就不占用篇幅了：TF-IDF框架与其可以衍生到的SEO知识 那篇文章中已解释了TF-IDF对于每个词都会有对应不同的权值上限的原因。正因为如此，“价格”这个词的TF-IDF值不存在多大提升空间，只能通过前面提到的导出链接等其它方式来提升该词权值。或者，只注重于保证“喷码机”的权值提升，也可以将“喷码机价格”整个词的排名拉上去。 上例中4、6、8三个网站首页的排名结果，本身其在“喷码机”这个词上的排名就是较高的，所以才有机会在“喷码机价格”这个词上面排名很高。很显而易见的是，它们都是首页，如果想用一个网站的文字类型内页去和它们竞争“喷码机”的排名，无疑难度非常高。 而那公司在用内页做这个词排名的同时，给内页持续发了很久的链接，排名也没什么动静，且对此情况的对应思路竟是买链接。我不能说这是不可能做上去的词，但至少想通过这种方式，这个词要用去的外链成本不菲。 方法在SEO中是起到决定性作用的。比如当初狼雨轻而易举的把“SEO”该词做到百度首页，从本质上讲只是因为展现了该展现的内容，或许不算基础，但至少更算不上什么高级手法。（当然狼雨当时排名上去的主要方法绝不是通过黑帽领域最基础手法Useragent Cloaking换过去的区区几百个单向链接——SEOWHY当时外链远远比狼雨网站的多，排名也在它后面。） 但比如我看到过不少人，什么都没分析就把狼雨所用的归结为没有价值的激进黑帽方法，那是对于自己未知事物的抗拒，不是一种可借鉴的学习态度。而且一个SEO方法的正规或作弊与否，往往是看具体用法而异的。 搜索引擎原理、程序、数据分析等方向，都是SEO可选择的学习路径。这些我多多少少接触过，也看到过少数务实的SEO专精其中一项做得非常好。然而无论如何，靠着感觉去做SEO永远是最差的选择，容易掉到自己给自己创造的局限里面去。<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="2009 搜索排名影响因素调查结果" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2Fseomoz-%25E5%258F%2591%25E5%25B8%2583-2009-%25E6%2590%259C%25E7%25B4%25A2%25E6%258E%2592%25E5%2590%258D%25E5%25BD%25B1%25E5%2593%258D%25E5%259B%25A0%25E7%25B4%25A0%25E8%25B0%2583%25E6%259F%25A5%25E7%25BB%2593%25E6%259E%259C%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12025891.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">2009 搜索排名影响因素调查结果</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="案例分析：排名到底有多大关系？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2F%25E6%25A1%2588%25E4%25BE%258B%25E5%2588%2586%25E6%259E%2590%25EF%25BC%259A%25E6%258E%2592%25E5%2590%258D%25E5%2588%25B0%25E5%25BA%2595%25E6%259C%2589%25E5%25A4%259A%25E5%25A4%25A7%25E5%2585%25B3%25E7%25B3%25BB%25EF%25BC%259F%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022446.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">案例分析：排名到底有多大关系？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="网站速度将会影响排名" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F11%2Fsite-speed-may-soon-affect-google-page-ranking%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060702.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">网站速度将会影响排名</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="用Web Developer工具栏发现 SEO 问题的 7 个方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F01%2Fweb-developer-toolbar-for-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060791.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">用Web Developer工具栏发现 SEO 问题的 7 个方法</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>在该SEO系列的第三篇文章《<a href="http://semwatch.org/2012/02/seo-practice-3/">让网站对搜索引擎的用户友好</a>》中，我提到了一句“<strong>将网站上更多有价值的信息以更好的形式展现给用户</strong>”。这是我将数千小时的精力花在SEO上面后得出的最主要的总结。近日新出的<a href="http://www.baidu.com/search/aboutseo.html">百度关于SEO的建议</a>上，也极为类似的将SEO总结为：“<strong>SEO可以帮你将网站中的高质量内容更好的呈现给搜索引擎，获取更多流量</strong>”。</p>
<p><span id="more-5678"></span></p>
<p>此处的措辞是很值得推敲的。因为诸如医疗行业会由SEO部门负责处理内容，所以我所说的里面，也将文字信息的创造和SEO连上了一些关系。而百度就写的更简单了当，它提出SEO应该做的，只是加强高质量内容的展现形式。</p>
<p>另外有意思的是百度提到“<strong>使之对搜索引擎和用户更加友好，并从中获取更多合理的流量。</strong>”，而我的说法是“<strong>使网站对搜索引擎友好、使网站对搜索引擎的用户友好。</strong>”。这里确切而言应该是以后者为准的，因为百度基于立场关系，不方便说这边指的“用户”是他们的用户而非网站用户罢了。</p>
<p>这些确确实实是SEO的本质。如系列第三篇提到的Amazon的“What Other Items Do Customers Buy After Viewing This Item?”推荐模块就是最典型的例子——它将合适的链接显示在了合适的地方，不用考虑任何无关的事情，只是这样就可以获得SEO的收效。</p>
<p>而最近自己入职了一家服务性公司，才真正意识到SEO整体水平之落后，关注的更多是没必要太关心的东西。数年经验的公司，做关键词排名的方法主要而言无非三点，标题出现关键词、页面出现文字内容并提升关键词密度、发外链。细节上虽然毕竟多年经验下来有所积累，也大体只是发外链的技巧等。无论如何，对于一个有多年经验的公司而言，还是不得不让人觉得大跌眼镜。</p>
<p>对于服务性公司而言，自然是和产品性公司有本质性区别的。前者的目标往往是只关键词排名，当关键词排名上去以后就能从客户那边收款；而后者SEO相应涉及的面要广得多，因为流量的提升方法中还有很多是独立于关键词的，就算是关键词排名也往往需要通过技术手段来批量实现（外贸站往往做的是上万级，少数SEO优秀的国外网站还会去做千万级的），极少接触单一关键词排名的提升问题。也因此认为自己或在单一关键词排名的问题上还存在着不足，才入职的服务性公司，当然从结论而言发现这是一个错误的决定。</p>
<p>比如公司有个“喷码机价格”的关键词，将着陆页安排在了一个普通的内页，但其它词排名都上去了，就它排名始终不上。</p>
<p>来看下“喷码机价格”这个词排名前列的网页：</p>
<p>1. www.hc360.com/chanpin/penmajijiage.html</p>
<p>2. www.qjy168.com/price/price.php?keyword=%C5%E7%C2%EB%BB%FA</p>
<p>3. www.21food.cn/quote/7653.html</p>
<p>4. www.leadjet.com.cn</p>
<p>5. www.net114.com/special-penmaji/</p>
<p>6. www.qianlipm.com</p>
<p>7. www.qjy168.com/shop/disp_provide_9554535.html</p>
<p>8. www.pmj123.com</p>
<p>其中1、2、3、5、7几个网站的内页排名在上面，因为它们存在一个共性，页面上所连向的其它页面，多数标题里面都包含“价格”二字。这样，通过导出链接的关系，连带的极大幅度的提升了“价格”此词的权重，“喷码机价格”这个词在主页面的排名才能上去。</p>
<p>但如果“价格”此词的权重无法上去的话，“喷码机价格”的排名问题即近乎于转化成了“喷码机”这个词排名的竞争。因为根据搜索引擎的TF-IDF公式，“价格”此词IDF值极低，哪怕TF值提升，对最终权值的影响还是极小。为了详细阐述这个问题，先前我额外写了一篇较长的TF-IDF普及文章并提到了此例，这里就不占用篇幅了：<a href="http://semwatch.org/2012/03/tf-idf/">TF-IDF框架与其可以衍生到的SEO知识</a></p>
<p>那篇文章中已解释了TF-IDF对于每个词都会有对应不同的权值上限的原因。正因为如此，“价格”这个词的TF-IDF值不存在多大提升空间，只能通过前面提到的导出链接等其它方式来提升该词权值。或者，只注重于保证“喷码机”的权值提升，也可以将“喷码机价格”整个词的排名拉上去。</p>
<p>上例中4、6、8三个网站首页的排名结果，本身其在“喷码机”这个词上的排名就是较高的，所以才有机会在“喷码机价格”这个词上面排名很高。很显而易见的是，它们都是首页，如果想用一个网站的文字类型内页去和它们竞争“喷码机”的排名，无疑难度非常高。</p>
<p>而那公司在用内页做这个词排名的同时，给内页持续发了很久的链接，排名也没什么动静，且对此情况的对应思路竟是买链接。我不能说这是不可能做上去的词，但至少想通过这种方式，这个词要用去的外链成本不菲。</p>
<p>方法在SEO中是起到决定性作用的。比如当初狼雨轻而易举的把“SEO”该词做到百度首页，从本质上讲只是因为展现了该展现的内容，或许不算基础，但至少更算不上什么高级手法。（当然狼雨当时排名上去的主要方法绝不是通过黑帽领域最基础手法Useragent Cloaking换过去的区区几百个单向链接——SEOWHY当时外链远远比狼雨网站的多，排名也在它后面。）</p>
<p>但比如我看到过不少人，什么都没分析就把狼雨所用的归结为没有价值的激进黑帽方法，那是对于自己未知事物的抗拒，不是一种可借鉴的学习态度。而且一个SEO方法的正规或作弊与否，往往是看具体用法而异的。</p>
<p>搜索引擎原理、程序、数据分析等方向，都是SEO可选择的学习路径。这些我多多少少接触过，也看到过少数务实的SEO专精其中一项做得非常好。然而无论如何，<strong>靠着感觉去做SEO永远是最差的选择</strong>，容易掉到自己给自己创造的局限里面去。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="4"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="2009 搜索排名影响因素调查结果" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2Fseomoz-%25E5%258F%2591%25E5%25B8%2583-2009-%25E6%2590%259C%25E7%25B4%25A2%25E6%258E%2592%25E5%2590%258D%25E5%25BD%25B1%25E5%2593%258D%25E5%259B%25A0%25E7%25B4%25A0%25E8%25B0%2583%25E6%259F%25A5%25E7%25BB%2593%25E6%259E%259C%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12025891.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">2009 搜索排名影响因素调查结果</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="案例分析：排名到底有多大关系？" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F08%2F%25E6%25A1%2588%25E4%25BE%258B%25E5%2588%2586%25E6%259E%2590%25EF%25BC%259A%25E6%258E%2592%25E5%2590%258D%25E5%2588%25B0%25E5%25BA%2595%25E6%259C%2589%25E5%25A4%259A%25E5%25A4%25A7%25E5%2585%25B3%25E7%25B3%25BB%25EF%25BC%259F%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12022446.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">案例分析：排名到底有多大关系？</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="网站速度将会影响排名" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2009%2F11%2Fsite-speed-may-soon-affect-google-page-ranking%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060702.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">网站速度将会影响排名</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="用Web Developer工具栏发现 SEO 问题的 7 个方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect?url=http%3A%2F%2Fsemwatch.org%2F2010%2F01%2Fweb-developer-toolbar-for-seo%2F&from=http%3A%2F%2Fsemwatch.org%2F2012%2F03%2Fseo-practice-5%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/06/13/12060791.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">用Web Developer工具栏发现 SEO 问题的 7 个方法</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="4" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://semwatch.org/2012/03/seo-practice-5/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>

