存档在 2016年1月

怎样使用.htaccess控制URL

2016年1月26日

参考:http://httpd.apache.org/docs/current/howto/htaccess
参考:http://baike.baidu.com/view/91163.htm
参考:http://hi.baidu.com/wojiubaibudu/item/4b3513c74a8fe47aced4f817
参考:http://www.8ttt8.com/jishu/w6533.htm

将指定文件的.php后缀换成.html:

参考:http://www.bkjia.com/xtzh/834330.html

RewriteEngine on
RewriteRule ^/?test\.html$ test.php [L]

将所有文件的.php后缀换成.html:

RewriteEngine on
RewriteRule ^/?([a-zA-Z0-9]+)\.html$ $1.php [L]

将所有文件的.php后缀省略:

RewriteEngine on
RewriteRule ^/?([a-z]+)$ $1.php [L]

识别浏览器的语言重定向不同的链接:

参考:http://cn.iseopad.com/htaccess-browser-lang-20130711/
参考:http://stackoverflow.com/questions/12184543/htaccess-redirect-only-if-the-http-referrer-does-not-equal-something
参考:http://www.cnblogs.com/antarctican/p/3772684
参考:http://pastebin.com/kxsfE9ga

是使用程序去判断用的语言再去跳转,或者在程序内根据用户语言输出不同的内容。

RewriteCond %{HTTP:Accept-Language} ^zh-cn.*$ [NC,OR]
RewriteCond %{HTTP:Accept-Language} ^zh.*$ [NC]
RewriteCond %{HTTP:Accept-Language} ^zh [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]

中文网站:如果不是中文浏览器,则跳转到英文站

RewriteEngine On

英文网站:如果是中文浏览器,则跳转到中文站

RewriteEngine On

怎样反爬虫策略

2016年1月24日

应对反爬虫,先分析服务器是通过什么来反爬,通过ip就用代理,通过cookie就换cookie,针对性的构建request。

参考:https://www.zhihu.com/question/28168585

爬取搜狗微信公众号搜索的非公开接口,没做宣传的时候,流量不大,用的比较好,宣传后,用的人多了,就发现被反爬虫了,一直500

通过chrome的开发者工具分析搜狗页面的请求,发现不是通过ip反爬,而是cookie里的几个关键字段,应对方法就是写个定时任务,维护一个cookie池,定时更新cookie,爬的时候随机取cookie,现在基本不会出现500。

爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔…

Day 1
小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影列表页面,根据 Html 分析电影名字存进自己的数据库。
这个站点的运维小黎发现某个时间段请求量陡增,分析日志发现都是 IP(1.1.1.1)这个用户,并且 useragent 还是 JavaClient1.6 ,基于这两点判断非人类后直接在Nginx 服务器上封杀。

Day 2
小莫电影只爬了一半,于是也针对性的变换了下策略:1. useragent 模仿百度(“Baiduspider…”),2. IP每爬半个小时就换一个IP代理。
小黎也发现了对应的变化,于是在 Nginx 上设置了一个频率限制,每分钟超过120次请求的再屏蔽IP。 同时考虑到百度家的爬虫有可能会被误伤,想想市场部门每月几十万的投放,于是写了个脚本,通过 hostname 检查下这个 ip 是不是真的百度家的,对这些 ip 设置一个白名单。

Day 3
小莫发现了新的限制后,想着我也不急着要这些数据,留给服务器慢慢爬吧,于是修改了代码,随机1-3秒爬一次,爬10次休息10秒,每天只在8-12,18-20点爬,隔几天还休息一下。
小黎看着新的日志头都大了,再设定规则不小心会误伤真实用户,于是准备换了一个思路,当3个小时的总请求超过50次的时候弹出一个验证码弹框,没有准确正确输入的话就把 IP 记录进黑名单。

Day 4
小莫看到验证码有些傻脸了,不过也不是没有办法,先去学习了图像识别(关键词 PIL,tesseract),再对验证码进行了二值化,分词,模式训练之后,识别了小黎的验证码(关于验证码,验证码的识别,验证码的反识别也是一个恢弘壮丽的斗争史,这里先不展开….),之后爬虫又跑了起来。
小黎是个不折不挠的好同学,看到验证码被攻破后,和开发同学商量了变化下开发模式,数据并不再直接渲染,而是由前端同学异步获取,并且通过 js 的加密库生成动态的 token,同时加密库再进行混淆(比较重要的步骤的确有网站这样做,参见微博的登陆流程)。

Day5
混淆过的加密库就没有办法了么?当然不是,可以慢慢调试,找到加密原理,不过小莫不准备用这么耗时耗力的方法,他放弃了基于 HttpClient的爬虫,选择了内置浏览器引擎的爬虫(关键词:PhantomJS,Selenium),在浏览器引擎中js 加密脚本算出了正确的结果,又一次拿到了对方的数据。
小黎:…..

爬虫与发爬虫的斗争还在继续。
不过实际应用时候,一般大家做到根据 IP 限制频次就结束了,除非很核心的数据,不会再进行更多的验证,毕竟工程的问题一半是成本的问题。

至于高效部分,一些 Tips:
1.尽量减少请求次数,能抓列表页就不抓详情页
2.不要只看 Web 网站,还有 App 和 H5,他们的反爬虫措施一般比较少
3.如果真的对性能要求很高,可以考虑多线程(一些成熟的框架如 scrapy都已支持),甚至分布式

 

Python学习网络爬虫主要分3个大的版块:抓取分析存储

另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。

首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入fireling的数据空间,你就会看到宁哥的小站首页。

简单来说这段过程发生了以下四个步骤:

  • 查找域名对应的IP地址。
  • 向IP对应的服务器发送请求。
  • 服务器响应请求,发回网页内容。
  • 浏览器解析网页内容。

网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。

抓取这一步,你要明确要得到的内容是是什么?是HTML源码,还是Json格式的字符串等。

1. 最基本的抓取抓取大多数情况属于get请求,即直接从对方服务器上获取数据。

首先,Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。另外,requests也是非常有用的包,与此类似的,还有httplib2等等。

Requests:
    import requests
    response = requests.get(url)
    content = requests.get(url).content
    print "response headers:", response.headers
    print "content:", content
Urllib2:
    import urllib2
    response = urllib2.urlopen(url)
    content = urllib2.urlopen(url).read()
    print "response headers:", response.headers
    print "content:", content
Httplib2:
    import httplib2
    http = httplib2.Http()
    response_headers, content = http.request(url, 'GET')
    print "response headers:", response_headers
    print "content:", content

此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。

data = {'data1':'XXXXX', 'data2':'XXXXX'}
Requests:data为dict,json
    import requests
    response = requests.get(url=url, params=data)
Urllib2:data为string
    import urllib, urllib2    
    data = urllib.urlencode(data)
    full_url = url+'?'+data
    response = urllib2.urlopen(full_url)

相关参考:网易新闻排行榜抓取回顾

参考项目:网络爬虫之最基本的爬虫:爬取网易新闻排行榜

2. 对于登陆情况的处理2.1 使用表单登陆

这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。

data = {'data1':'XXXXX', 'data2':'XXXXX'}
Requests:data为dict,json
    import requests
    response = requests.post(url=url, data=data)
Urllib2:data为string
    import urllib, urllib2    
    data = urllib.urlencode(data)
    req = urllib2.Request(url=url, data=data)
    response = urllib2.urlopen(req)

2.2 使用cookie登陆

使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。

import requests            
requests_session = requests.session() 
response = requests_session.post(url=url_login, data=data)

若存在验证码,此时采用response = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:

response_captcha = requests_session.get(url=url_login, cookies=cookies)
response1 = requests.get(url_login) # 未登陆
response2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Response Cookie!
response3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Response Cookie!

相关参考:网络爬虫-验证码登陆

参考项目:网络爬虫之用户名密码及验证码登陆:爬取知乎网站

3. 对于反爬虫机制的处理3.1 使用代理

适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。

这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

proxies = {'http':'http://XX.XX.XX.XX:XXXX'}
Requests:
    import requests
    response = requests.get(url=url, proxies=proxies)
Urllib2:
    import urllib2
    proxy_support = urllib2.ProxyHandler(proxies)
    opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
    urllib2.install_opener(opener) # 安装opener,此后调用urlopen()时都会使用安装过的opener对象
    response = urllib2.urlopen(url)

3.2 时间设置

适用情况:限制频率情况。

Requests,Urllib2都可以使用time库的sleep()函数:

import time
time.sleep(1)

3.3 伪装成浏览器,或者反“反盗链”

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

headers = {'User-Agent':'XXXXX'} # 伪装成浏览器访问,适用于拒绝爬虫的网站
headers = {'Referer':'XXXXX'}
headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'}
Requests:
    response = requests.get(url=url, headers=headers)
Urllib2:
    import urllib, urllib2   
    req = urllib2.Request(url=url, headers=headers)
    response = urllib2.urlopen(req)

4. 对于断线重连不多说。

def multi_session(session, *arg):
    while True:
        retryTimes = 20
    while retryTimes>0:
        try:
            return session.post(*arg)
        except:
            print '.',
            retryTimes -= 1

或者

def multi_open(opener, *arg):
    while True:
        retryTimes = 20
    while retryTimes>0:
        try:
            return opener.open(*arg)
        except:
            print '.',
            retryTimes -= 1

这样我们就可以使用multi_session或multi_open对爬虫抓取的session或opener进行保持。

5. 多进程抓取这里针对华尔街见闻进行并行抓取的实验对比:Python多进程抓取Java单线程和多线程抓取

相关参考:关于Python和Java的多进程多线程计算方法对比

6. 对于Ajax请求的处理对于“加载更多”情况,使用Ajax来传输很多数据。

它的工作原理是:从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载更多的内容,“填充”到网页里。这就是为什么如果你直接去爬网页本身的url,你会找不到页面的实际内容。

这里,若使用Google Chrome分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制Request URL),循环过程。

  • 如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。
  • 对返回的json格式数据(str)进行正则匹配。json格式数据中,需从’\uxxxx’形式的unicode_escape编码转换成u’\uxxxx’的unicode编码。

7. 自动化测试工具SeleniumSelenium是一款自动化测试工具。它能实现操纵浏览器,包括字符填充、鼠标点击、获取元素、页面切换等一系列操作。总之,凡是浏览器能做的事,Selenium都能够做到。

这里列出在给定城市列表后,使用selenium来动态抓取去哪儿网的票价信息的代码。

参考项目:网络爬虫之Selenium使用代理登陆:爬取去哪儿网站

8. 验证码识别对于网站有验证码的情况,我们有三种办法:

  • 使用代理,更新IP。
  • 使用cookie登陆。
  • 验证码识别。

使用代理和使用cookie登陆之前已经讲过,下面讲一下验证码识别。

可以利用开源的Tesseract-OCR系统进行验证码图片的下载及识别,将识别的字符传到爬虫系统进行模拟登陆。如果不成功,可以再次更新验证码识别,直到成功为止。

参考项目:Captcha1

爬取有两个需要注意的问题:

  • 如何监控一系列网站的更新情况,也就是说,如何进行增量式爬取?
  • 对于海量数据,如何实现分布式爬取?

分析抓取之后就是对抓取的内容进行分析,你需要什么内容,就从中提炼出相关的内容来。

常见的分析工具有正则表达式BeautifulSouplxml等等。

存储分析出我们需要的内容之后,接下来就是存储了。

我们可以选择存入文本文件,也可以选择存入MySQLMongoDB数据库等。

存储有两个需要注意的问题:

  • 如何进行网页去重?
  • 内容以什么形式存储?

ScrapyScrapy是一个基于Twisted的开源的Python爬虫框架,在工业中应用非常广泛。

相关内容可以参考基于Scrapy网络爬虫的搭建,同时给出这篇文章介绍的微信搜索爬取的项目代码,给大家作为学习参考。

参考项目:使用Scrapy或Requests递归抓取微信搜索结果

 

如 @朱添一 所说, 反反爬虫策略是依靠定向爬取源的反爬虫策略而定的.
一般有一下几种

一些常用的方法

  • IP代理
    • 对于IP代理,各个语言的Native Request API都提供的IP代理响应的API, 需要解决的主要就是IP源的问题了.
    • 网络上有廉价的代理IP(1元4000个左右), 我做过简单的测试, 100个IP中, 平均可用的在40-60左右, 访问延迟均在200以上.
    • 网络有高质量的代理IP出售, 前提是你有渠道.
    • 因为使用IP代理后, 延迟加大, 失败率提高, 所以可以将爬虫框架中将请求设计为异步, 将请求任务加入请求队列(RabbitMQ,Kafka,Redis), 调用成功后再进行回调处理, 失败则重新加入队列. 每次请求都从IP池中取IP, 如果请求失败则从IP池中删除该失效的IP.
  • Cookies
    • 有一些网站是基于cookies做反爬虫, 这个基本上就是如 @朱添一 所说的, 维护一套Cookies池
    • 注意研究下目标网站的cookies过期事件, 可以模拟浏览器, 定时生成cookies
  • 限速访问
    • 像开多线程,循环无休眠的的暴力爬取数据, 那真是分分钟被封IP的事, 限速访问实现起来也挺简单(用任务队列实现), 效率问题也不用担心, 一般结合IP代理已经可以很快地实现爬去目标内容.

一些坑大批量爬取目标网站的内容后, 难免碰到红线触发对方的反爬虫机制. 所以适当的告警提示爬虫失效是很有必有的.

一般被反爬虫后, 请求返回的HttpCode为403的失败页面, 有些网站还会返回输入验证码(如豆瓣), 所以检测到403调用失败, 就发送报警, 可以结合一些监控框架, 如Metrics等, 设置短时间内, 告警到达一定阀值后, 给你发邮件,短信等.

当然, 单纯的检测403错误并不能解决所有情况. 有一些网站比较奇葩, 反爬虫后返回的页面仍然是200的(如去哪儿), 这时候往往爬虫任务会进入解析阶段, 解析失败是必然的. 应对这些办法, 也只能在解析失败的时候, 发送报警, 当告警短时间到达一定阀值, 再触发通知事件.
当然这个解决部分并不完美, 因为有时候, 因为网站结构改变, 而导致解析失败, 同样回触发告警. 而你并不能很简单地区分, 告警是由于哪个原因引起的.

 

如 @朱添一 所说, 反反爬虫策略是依靠定向爬取源的反爬虫策略而定的.
一般有一下几种

一些常用的方法

  • IP代理
    • 对于IP代理,各个语言的Native Request API都提供的IP代理响应的API, 需要解决的主要就是IP源的问题了.
    • 网络上有廉价的代理IP(1元4000个左右), 我做过简单的测试, 100个IP中, 平均可用的在40-60左右, 访问延迟均在200以上.
    • 网络有高质量的代理IP出售, 前提是你有渠道.
    • 因为使用IP代理后, 延迟加大, 失败率提高, 所以可以将爬虫框架中将请求设计为异步, 将请求任务加入请求队列(RabbitMQ,Kafka,Redis), 调用成功后再进行回调处理, 失败则重新加入队列. 每次请求都从IP池中取IP, 如果请求失败则从IP池中删除该失效的IP.
  • Cookies
    • 有一些网站是基于cookies做反爬虫, 这个基本上就是如 @朱添一 所说的, 维护一套Cookies池
    • 注意研究下目标网站的cookies过期事件, 可以模拟浏览器, 定时生成cookies
  • 限速访问
    • 像开多线程,循环无休眠的的暴力爬取数据, 那真是分分钟被封IP的事, 限速访问实现起来也挺简单(用任务队列实现), 效率问题也不用担心, 一般结合IP代理已经可以很快地实现爬去目标内容.

一些坑大批量爬取目标网站的内容后, 难免碰到红线触发对方的反爬虫机制. 所以适当的告警提示爬虫失效是很有必有的.

一般被反爬虫后, 请求返回的HttpCode为403的失败页面, 有些网站还会返回输入验证码(如豆瓣), 所以检测到403调用失败, 就发送报警, 可以结合一些监控框架, 如Metrics等, 设置短时间内, 告警到达一定阀值后, 给你发邮件,短信等.

当然, 单纯的检测403错误并不能解决所有情况. 有一些网站比较奇葩, 反爬虫后返回的页面仍然是200的(如去哪儿), 这时候往往爬虫任务会进入解析阶段, 解析失败是必然的. 应对这些办法, 也只能在解析失败的时候, 发送报警, 当告警短时间到达一定阀值, 再触发通知事件.
当然这个解决部分并不完美, 因为有时候, 因为网站结构改变, 而导致解析失败, 同样回触发告警. 而你并不能很简单地区分, 告警是由于哪个原因引起的.

8 Tips on How to Sell Your Domain Name

2016年1月21日

8 Tips on How to Sell Your Domain Name

October 7, 2013 Bill SweetmanDomains, Getting Started, Learning, Selling Domains54 Comments0

Over the years, a lot of people have asked me for advice on selling a domain name.

What follows is some general advice for the Web entrepreneur that already owns a bunch of domain names and would like to significantly increase the odds of selling those domain names.

Although this advice is based on my two decades’ worth of experience buying and selling thousands of domain names, this advice is not aimed at professional domain name investors (a.k.a. “domainers”) nor am I going to cover pro-active domain name pitching strategies.

If, however, you are what I would refer to as a “Budding Domain Speculator” looking for some practical tips to move some of your domain names, then read on…
The Harsh Truth about Selling Domain Names

Let’s begin with two important things you need to understand and accept (but will likely upset a few readers):

Most of your domain names are probably un-sellable.

Before I dive into how you can boost your domain sales, it’s time for a reality check. The number one impediment to what is referred to as “secondary market” domain name sales is the quality – or lack thereof – of the inventory.

In general, the kind of inventory that sells best in today’s world is one-word, two-word, and sometimes three-word English language .com domain names that directly relate to popular business products or services.

If you are holding non .com inventory (e.g., .net, .org, .biz), or domains that consist of invented words, or are phrases, be prepared for the sad probability that this inventory will not sell in your lifetime.

Of course there are going to be exceptions to this, but they are, by their very nature, exceptions. The cold, hard reality is that secondary market domain names are not very liquid assets. This probably means that most of your inventory is not going to sell. Ever.

It’s still a horrendously inefficient market.

Most end user buyers don’t know where to look for secondary market domain names. They don’t know how to contact the owners, nor do they have any idea of how to actually purchase and transfer a domain name. As a result, they become generally confused and frustrated by the whole process.

Quite frankly, who can blame them? So the more you can do as a domain speculator to soften the edges here, the greater the likelihood you will sell some of your domains.
Tips for Selling Your Domain

Now that I have beaten you up about the quality of your domains and the relatively inefficient state of the secondary market, let’s talk about some best practices that will help you sell your domains.
1. Display a “for sale” message on your domain’s home page

Believe it or not, the number one source of secondary market domain name sales is buyers typing the domain name into their Web browser and navigating to the domain to see if it is available. Better yet, you can use Flippa’s Free Domain Billboard.

To boost your domain name sales, you first need to make sure that your domains resolve to a page that, one way or another, clearly indicates that the domain is for sale and provides a choice of ways for the prospective buyer to contact you or purchase the domain right away, whether that be via email, phone, chat, or whatever.

The goal here is convenience. There’s a bunch of easy ways you can accomplish this.

Your domain name registrar may provide you with a free one-page Website tool, which you can use to create a “this domain is for sale” landing page. Alternatively, you can create a single page (perhaps a hidden page hanging off one of your existing websites) that indicates that your domain names are for sale. You can then forward all of your domain names that are for sale to that one page.

If you are feeling ambitious, you can link each of your domain names to its matching “buy it now” purchase page at one of the marketplaces. Another more sophisticated option would be to “park” your domain with one of the leading domain parking companies, such as DomainSponsor or SmartName and enable their built-in “for sale” message and contact mechanisms.

Whatever you do, make sure that if someone navigates to one of your domain names that they can clearly see your “for sale” message, otherwise you will miss out on a ton of sales opportunities.
2. Sell your domains on Flippa

Although Flippa is best known as the leading platform for buying and selling websites, the domain name marketplace has grown quickly and is now a leading product for selling domains names.

Flippa attracts a different audience than the typical domain name marketplace, and sometimes a domain name that would not get much attention in the more crowded and traditional domain name marketplaces will find a seller on Flippa.

This happened to me with one of my own domain names, a two-word, technology-oriented .com. I had it listed just about everywhere for a year or two, even had it in auction on GoDaddy a few times, but I could never get this domain name to sell.

Figuring I had nothing to lose, and always game to try new things, I listed it on Flippa. To my pleasant surprise, the domain sold for several thousand dollars and I made a tidy little profit.

From my observation, the domain names that sell best on Flippa are those that appeal to buyers who will want to develop them into full-blown websites.

If you do try to sell a domain name on Flippa, take advantage of the fact you can include a detailed description of the domain name in your listing, which is something that the traditional domain marketplaces don’t offer.
3. Embrace fixed pricing if you really want to move your domains

Regarding fixed pricing, this is always a hotly-debated topic in the domain investor community because some people feel that putting a fixed-price on a domain means that you risk leaving money on the table.

While that may be true, at least you sold the domain name! As I like to remind people:

“He who dies with the most toys (and domains) still dies.”

Most buyers are intimidated by the whole “make offer” thing and just want to be able to browse by price and buy instantly if they see something they like and can afford. Frankly, I’d rather have seller’s remorse than go to my grave still holding an unsold domain name, but the decision to go fixed-price or not is all yours.

One thing to keep in mind: if someone contacts you directly about buying one of your fixed-price domain names, you can always ask them to make an offer and/or you can always quote them a higher amount than your fixed-price. It is very unlikely that they have seen the list price elsewhere. Most buyers are not that sophisticated.
4. Optimize the WHOIS record for sales

Add a “for sale” message to your WHOIS (domain ownership record) information. Once again, the goal here is to make it blatantly clear to Joe Public that your domain name is for sale.

You can include this messaging in one of several ways. You can append the owner’s (a.k.a. registrant’s) name or company name with “This Domain is For Sale”, e.g., instead of listing the company as “Acme Inc.” you would list it as “Acme Inc. – This Domain is For Sale”.

Alternatively, you could use a custom email address for your domain registrations that suggests the domain name is for sale, e.g., domainsales@[yourcompanyname].com.

Trust me, you cannot be too obvious about this!
5. Don’t hide behind WHOIS privacy

If you are using a WHOIS privacy service, remove it if possible.

These services are fantastic if you want to cut down on spam and/or hide your identity as the owner of a domain, but they are a serious impediment to sales because most potential buyers don’t know how to contact a domain owner that is using a WHOIS privacy service. It simply confuses them and is a perceived (if not actual) roadblock.

Make it easier for buyers to contact you. Ask your domain registrar to remove the WHOIS privacy service.
6. Have realistic price expectations

We all hear in the popular media about those rare six and seven-figure domain name sales like sex.com, hotels.com and beer.com, but what folks don’t realize is that these deals represent less than 1% of all the transactions.

It would be awesome if you were able to sell one of your domains for tens or even hundreds of thousands of dollars (and I genuinely hope that you do), but chances are that’s not going to happen.

The typical secondary market .com domain name (which is usually a two-word name) sells for around $2,000, and the majority of the rest of the domains that sell change hands for less than $5,000, so keep that in mind when you price your domains.

You probably aren’t going to retire on the proceeds of your domain name sales, but it might help you pay off your mortgage faster.

For help pricing your domains, check out tools like Flippa’s Domain Name Apprasial Tool

7. Respond promptly to any purchase inquiries you get

Everyone seems to be in a rush these days to get stuff done, and purchasing domain names is no different. If someone makes the effort to contact you about buying one of your domain names, try to respond to them within 24 hours. If you don’t, they may find another domain name and you will have lost a sale.

There is nothing more frustrating to a buyer than a non-responsive seller. I have seen domain speculators miss out on potential six-figure deals because they took too long to reply to the buyer, or didn’t reply at all.
8. Use “charm pricing” to increase the likelihood of a sale

There’s a reason a lot of products on store shelves have prices that end in “99” or “98”. This is called “charm pricing” and it has to do with retail psychology.

You can and should apply this best practice to your domain name pricing. For example, even though a domain name priced at $1,999 is only $1 less than a domain name priced at $2,000, the $1,999 domain will “feel” like a much better deal to many potential buyers.

Domains, like most products with charm pricing, have been statistically proven to sell much faster. I know this may sound crazy, but it works!
Conclusion

By following the eight domain name sales tips that I have outlined above, you will vastly increase the odds of selling a domain. I wish you much luck and success in doing so, and please let me and the fellow readers know in the comments what strategies are working best for you.

WordPress插件:Give 捐助

2016年1月21日

WordPress捐赠插件,支持 Paypal、Bitcoin、Stripe 等。

搜索:https://wordpress.org/plugins/search.php?q=donate

Give – WordPress Donation Plugin

官网:https://wordpress.org/plugins/give/
官网:https://givewp.com/

GoUrl Bitcoin Paypal Donations – Give Addon

官网:https://wordpress.org/plugins/gourl-bitcoin-paypal-donations-give-addon/

GoUrl Bitcoin Payments WordPress Plugin

官网:https://gourl.io/bitcoin-wordpress-plugin
官网:https://github.com/cryptoapi/Bitcoin-Wordpress-Plugin

怎样获得适合域名停放的素材

2016年1月19日

近几年,仅而依赖Sedo上补足10个域名的流量制造着每月几十美元的收益,甚而在破毁后更加糟糕。

却不知域名停放依然是域名大佬们一个非常稳健的金鹅——非但是域名销售。

昨天看到了owntag的经验:

http://domainclub.org/showthread.php?t=39031

Agar.io是 Agario 公司旗下的網頁遊戲的網址,在美國很夯,Google 2015 年度熱搜榜 高居第三名。

owntag在初期注册了一批agar的typo,从七月中旬到现在已经parking收入了快五万美元了。

但这个月以来流量已经大幅度下降,每天收入只有一百多美元了。

流量慢慢下降的原因应该有三个(这组typo的情况)

1. 游戏流行度慢慢下降
2. 敲错typo过来的人,再次不小心敲错来到这个typo或其他typo,就会知道是访问错误网站了,不会再点击广告
3. Parking商的广告供应商是谷歌,逐渐对游戏类流量的RPC向下调整

另外,非主流后缀会出现流量会向.com流出,但总体流出没有那么大, agario.com不是我的域名,但我判断带过去给.com的流量不会比我的几个.io域名高。
反倒是这个游戏叫agario,却使用了domain hack类型的 agar.io域名,反而提高了typo的可能性

那么我也试试agar.io的typo

1. 生成所有agar.io的typo

https://whoisdog.com/tool/domain-typo-generator/index.php

2. 检测所有typo的PR/Alexa

https://whoisdog.com/tool/alexa-pagerank-checker/index.php

gar.io PageRank® 0 Alexa Rank:2793238
aar.io PageRank® 0 Alexa: No Alexa
agr.io PageRank® 0 Alexa Rank:379460
aga.io PageRank® 0 Alexa Rank:864899
aagar.io PageRank® 0 Alexa Rank:2256660
aggar.io PageRank® 0 Alexa Rank:5363398
agaar.io PageRank® 0 Alexa Rank:2881484
agarr.io PageRank® 0 Alexa Rank:2461679
gaar.io PageRank® 0 Alexa Rank:22255158
aagr.io PageRank® 0 Alexa Rank:3440798
agra.io PageRank® 0 Alexa Rank:1263203
zgar.io PageRank® 0 Alexa: No Alexa
sgar.io PageRank® 0 Alexa Rank:18342152
wgar.io PageRank® 0 Alexa: No Alexa
qgar.io PageRank® 0 Alexa: No Alexa
afar.io PageRank® 0 Alexa Rank:6653766
avar.io PageRank® 0 Alexa: No Alexa
abar.io PageRank® 0 Alexa Rank:17507220
ahar.io PageRank® 0 Alexa Rank:10673953
ayar.io PageRank® 0 Alexa: No Alexa
atar.io PageRank® 0 Alexa: No Alexa
agzr.io PageRank® 0 Alexa: No Alexa
agsr.io PageRank® 0 Alexa Rank:8482249
agwr.io PageRank® 0 Alexa: No Alexa
agqr.io PageRank® 0 Alexa Rank:17689192
agae.io PageRank® 0 Alexa Rank:3953429
agad.io PageRank® 0 Alexa: No Alexa
agaf.io PageRank® 0 Alexa Rank:22175380
agat.io PageRank® 0 Alexa Rank:5289629
aga5.io PageRank® 0 Alexa: No Alexa
aga4.io PageRank® 0 Alexa: No Alexa
zagar.io PageRank® 0 Alexa: No Alexa
sagar.io PageRank® 0 Alexa: No Alexa
wagar.io PageRank® 0 Alexa: No Alexa
qagar.io PageRank® 0 Alexa Rank:17791314
afgar.io PageRank® 0 Alexa: No Alexa
avgar.io PageRank® 0 Alexa: No Alexa
abgar.io PageRank® 0 Alexa: No Alexa
ahgar.io PageRank® 0 Alexa: No Alexa
aygar.io PageRank® 0 Alexa: No Alexa
atgar.io PageRank® 0 Alexa Rank:21970810
agzar.io PageRank® 0 Alexa: No Alexa
agsar.io PageRank® 0 Alexa: No Alexa
agwar.io PageRank® 0 Alexa: No Alexa
agqar.io PageRank® 0 Alexa: No Alexa
agaer.io PageRank® 0 Alexa Rank:20137179
agadr.io PageRank® 0 Alexa: No Alexa
agafr.io PageRank® 0 Alexa: No Alexa
agatr.io PageRank® 0 Alexa: No Alexa
aga5r.io PageRank® 0 Alexa: No Alexa
aga4r.io PageRank® 0 Alexa: No Alexa
azgar.io PageRank® 0 Alexa: No Alexa
asgar.io PageRank® 0 Alexa: No Alexa
awgar.io PageRank® 0 Alexa: No Alexa
aqgar.io PageRank® 0 Alexa: No Alexa
agfar.io PageRank® 0 Alexa: No Alexa
agvar.io PageRank® 0 Alexa: No Alexa
agbar.io PageRank® 0 Alexa: No Alexa
aghar.io PageRank® 0 Alexa Rank:18433225
agyar.io PageRank® 0 Alexa: No Alexa
agtar.io PageRank® 0 Alexa: No Alexa
agazr.io PageRank® 0 Alexa: No Alexa
agasr.io PageRank® 0 Alexa Rank:22489748
agawr.io PageRank® 0 Alexa: No Alexa
agaqr.io PageRank® 0 Alexa: No Alexa
agare.io PageRank® 0 Alexa Rank:6781254
agard.io PageRank® 0 Alexa Rank:16104582
agarf.io PageRank® 0 Alexa: No Alexa
agart.io PageRank® 0 Alexa Rank:16462141
agar5.io PageRank® 0 Alexa: No Alexa
agar4.io PageRank® 0 Alexa: No Alexa
egar.io PageRank® 0 Alexa Rank:8975624
ogar.io PageRank® 0 Alexa Rank:1325265
ugar.io PageRank® 0 Alexa: No Alexa
ager.io PageRank® 0 Alexa Rank:2063584
agor.io PageRank® 0 Alexa Rank:324006
agur.io PageRank® 0 Alexa Rank:18107907

3. 批量查询

把没有Alexa记录的域名进行批量查询

https://www.namecheap.com/domains/registration.aspx

得到:

zgar.io
wgar.io
qgar.io
ayar.io
agwr.io
aga5.io
aga4.io
wagar.io
afgar.io
avgar.io
abgar.io
ahgar.io
aygar.io
agzar.io
agsar.io
agwar.io
agqar.io
agadr.io
agafr.io
agatr.io
aga5r.io
aga4r.io
azgar.io
asgar.io
awgar.io
aqgar.io
agfar.io
agvar.io
agbar.io
agyar.io
agtar.io
agazr.io
agawr.io
agaqr.io
agarf.io
agar5.io
agar4.io

4. 分析结果,决定注册潜在流量大的备选项

A. 重复敲1个字母的基本在owntag名下,窜入1个字母的已注册的普遍不行,同时大部分未注册,予以剔除

B. 余下未注册的几个:

zgar.io
ayar.io
agwr.io

C. 非a开头的,在Alexa Rank:2000000 左右。不理想。zgar.io 予以剔除

D.

ayar.io所处位置,第二个字母误敲,可能在Alexa Rank:1000000 以外。但是品相比agwr.io略好…
agwr.io所处位置,第三个字母误敲,可能在Alexa Rank:1000000 以内。

afar.io PageRank® 0 Alexa Rank:6653766
avar.io PageRank® 0 Alexa: No Alexa
abar.io PageRank® 0 Alexa Rank:17507220
ahar.io PageRank® 0 Alexa Rank:10673953
ayar.io PageRank® 0 Alexa: No Alexa
atar.io PageRank® 0 Alexa: No Alexa
agzr.io PageRank® 0 Alexa: No Alexa
agsr.io PageRank® 0 Alexa Rank:8482249
agwr.io PageRank® 0 Alexa: No Alexa
agqr.io PageRank® 0 Alexa Rank:17689192

E. owntag名下的包括:

aagar.io PageRank® 0 Alexa Rank:2256660
aggar.io PageRank® 0 Alexa Rank:5363398
agaar.io PageRank® 0 Alexa Rank:2881484
agarr.io PageRank® 0 Alexa Rank:2461679
aagr.io PageRank® 0 Alexa Rank:3440798
agra.io PageRank® 0 Alexa Rank:1263203
atar.io PageRank® 0 Alexa: No Alexa

5. 决定注册

ayar.io

6. 选择停放平台

owntag使用的是 http://www.domainsponsor.com/ ,获得相当丰厚的收益。

其他typo有使用 http://bodis.com/

agar.io的typo资源基本耗尽,可以尝试发掘其他Alexa排名前1000名的新晋网站的域名

排名前一百万的网站可以在这里查询:

http://www.alexa.com/topsites

下载地址:

http://s3.amazonaws.com/alexa-static/top-1m.csv.zip

使用Excel进行筛选那些新后缀域名,得到:

281 github.io
662 agar.io
1016 cpasbien.io

但对github.io研究后发现,这个域名仅用于用户的三级域名,主域名是无任何用处的。github.io的typo输出检测Alexa后,仅有2个被注册,而且Alexa惨淡。

放弃…