1. build_opener([handler1 [ handler2, ... ]])
参数handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等。
build_opener ()返回的对象具有open()方法,与urlopen()函数的功能相同。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 78-89: ordinal not in range(128)
主要是由于url中带有中文导致的。
刚刚看了urllib.parse.quote()的定义,完全可以直接处理中英混排的url,无需单独处理中文再拼接。具体方法:
# -*- coding:utf-8 -*-
from urllib.parse import quote
url = 'http://www.example.com/api.php?text=中文在这里'
# 不带附加参数
print('\n不带附加参数:\n%s' % quote(url))
# 附带不转换字符参数
print('\n附加不转换字符参数:\n%s' % quote(url, safe='/:?='))
运行结果:不带附加参数:
http%3A//www.example.com/api.php%3Ftext%3D%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C
附加不转换字符参数:
http://www.example.com/api.php?text=%E4%B8%AD%E6%96%87%E5%9C%A8%E8%BF%99%E9%87%8C
quote可用的参数如下:
quote(string, safe='/', encoding=None, errors=None)
其中的safe参数可用的范围:
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
这样对于爬取来的混合中文的url可以直接处理了。
<?php
$requestUrl = 'ip138.com';
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式
curl_setopt($ch, CURLOPT_PROXY, "112.65.219.72"); //代理服务器地址
curl_setopt($ch, CURLOPT_PROXYPORT, 80); //代理服务器端口
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, ":"); //http代理认证帐号,username:password的格式
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
此段代码是使用了curl实现了网页代理的功能,这是curl类库内置的代理功能,不做过多解释,需要提醒的是,curl类库一般需要自己更改php.ini才能实现的
下载模块nginx_substitutions_filter
yum -y install git
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
mv ngx_http_substitutions_filter_module /etc/nginx_substitutions_filter
重新编译Nginx
第一种方案:
这个问题关键就是hosts里面对于本机host的设置有问题,搜索遍网上大部分教程,都是指定hostname,真的有用吗?没用,关键的地方并没有指出来,你可以看下/var/log/mail.log
目前我们运营一家综合B2B平台,虽然行业广,但深度不够。
2017年为了补短板,我们需要深入了解一些垂直行业,期望依靠深耕细作,提升网站的单位流量价值。
对于互联网公司来说,多数都是搞产品和技术的互联网人,没有行业经验背景。想要深挖垂直行业,第一步只能靠自己摸索,最简单有效的方法就是分析这个行业的垂直网站。
对应的工作简单说就两条:
- 找到这个行业里的优秀垂直网站。
- “庖丁解牛”式的初步分析。
如何找到高质量的垂直网站?
中国互联网发展也有很多年了,相对大的行业,一般都有自己的行业平台级网站,如何找到这些网站?
方法一
最简单的方法就是百度搜:“行业名+网”,以皮革行业为例,那就是搜“皮革网”,然后把百度搜索结果前三页的独立网站、B2B平台的子域名站都收集过来。
如果使用Chrome浏览器,推荐安装TabCopy这个插件,点击一下就可以复制网站的Title和URL到剪贴板里,方便粘贴到其他应用里处理。
除了百度外,还可以结合谷歌、360等其他搜索引擎,避免漏掉一些网站。
方法二
从某个垂直网站的友情链接里找出其他垂直网站。行业做久了,一般都是互相认识或有朋友关系的,友情链接里不只可以找到同类网站,还可以找到一些行业上下游关系,周边产业。
通过以上两种方法以找到很多垂直网站,但是否都是高质量呢?
除了行业词的百度排名,然后就要靠数据来说话了。
比如这个网站的百度权重、百度流量如何?百度收录页面数量多少等等。
推荐一个工具网站:买链帮手_最好用的网站批量查询工具

这个网站一般是做站群买外链的人用,可以查询域名的一些信息。
借助这个工具可以查询出各个垂直网站的百度收录情况、百度权重、搜狗权重、反链等信息,而且可以导出生成Excel文件。
还可以查询一下爱站网,获取网站的百度流量预估数据,然后也添加到Excel中。
理论上讲:一个网站的百度收录、权重、流量越高越好,这些数据可以证明它是这个行业最好的网站。
(如果有时间、精力的话,其实可以自己开发一套分析工具,把以上工作尽可能的自动化。)
需要看什么数据?
经过简单的分析,我们有了一个垂直行业网站的排名表。
那下一步就要靠人工去分析各个网站了,机器就很难替代这部分工作。
重点看什么部分?
- 网站栏目都有哪些?
- 网站分类层级和维度
- 网站特色是什么
- 哪些内容有价值?
栏目对比分析
做一个对比表格,看看对于这个垂直领域来说,哪些功能和服务是必须提供的。
比如皮革网中,除了B2B常见的供求、企业名录、资讯、展会等等模块外,多数都提供了“价格指数”栏目,里面多是一些分析文章和趋势图,跟农产品和化工网站的价格行情展现形式略微不同。
还有皮革因为除了人工合成,很多是用动物皮毛加工,所以行业就表现出明显的养殖地、产地聚集现象。
如果要做一个专业的皮革网站,就要考虑这些情况。
网站分类层级和维度
分类是个头疼的问题,多数行业没有一个统一的标准。
理论上分类要按照MECE原则(相互独立、完全穷尽)去划分,但实际情况又很复杂,做网站的人也不一定完全了解行业。
所以分类时使用的维度可能不同,比如皮革分类,有的按处理工艺分类、有的按质地分类、有的按表层品质分类。感兴趣的可以读这篇:皮革档次如何分类? - 宋世泊的回答 - 知乎
更粗暴的直接分为“天然皮革”和“代用革”两类,然后再细分。
涉及到不同的垂直领域,要具体问题具体分析,但使用归纳法找出共性,一直是很有效的方法。
当你不懂时,最好的学习方法就是“模仿“、”从众”。
另一个计划尝试的方法:
借助5118网或战神等工具,获取这些垂直网站的百度搜索流量数据,然后分析关键词和着陆页面,根据搜索内容进行提炼总结,反向定义出网站分类和栏目。
吸收特色内容和高价值内容
对于B2B行业来说,供求信息、企业名录一般都是有价值的内容。
除此之外,要看看资讯、展会、行情等模块,是否存在某个网站做的非常好,是否值得“偷”过来。
当做完以上分析工作后,借助分析过程中收集整理的网址和数据,可以迅速做出一个非常专业的垂直网址导航,对想学习了解这个行业的人来说是有价值的。
而且对于网站营销推广来说,拥有一个垂直专业网址导航,也可以成为以后资源互换的基础。
总结
以上只是一些粗浅的经验分享,因为工作刚刚展开,需要不断的积累形成套路,以后发现什么好的工具、方法会陆续跟大家分享交流。
虽然讲的是垂直行业的分析方法,但这个思路还是很通用的,对于做产品的人来说,其实就是竞争对手分析,而且只是其中的一部分。
作者:乔向阳
http://httpd.apache.org/docs/2.4/new_features_2_4.html
/*2012.12.25 補充*/
apache 2.4.3 版有對 window 版的 ssl bug 做修正 ,bug 說明 http://www.apachelounge.com/viewtopic.php?p=22306
這個 bug 簡而言之就是會讓 443 的頁面連線掛點...
Let's Encrypt,是2016年4月12日成立的一家证书授权中心,提供免费的传输层安全(TLS)X.509证书,通过自动化的过程消除目前安全网站证书需要手工创建,加密,签名,安装以及更新的复杂性。
某些情况下,我们需要持续的周期性的提供一些服务,比如监控内存或cpu的运行状况,这些应用与客户端是没有关系的,不是说客户端(如web界面,手机app等)关闭了,我们就不监控内存或cpu了,为了应对这种业务场景,后台守护进程就可以派上用场了。