参考文章:Normalize URL path python
首先说下什么叫URL拼接,我们有这么一个HTML片段:
<a href="../../a.html">click me</a>
做为一只辛苦的爬虫,我们要跟踪到这个click me指向的页面,假设这个片段来自:http://www.xxxdu.com,那么目标页面是什么呢?
显然不是
http://www.xxxdu.com/../../a.html
而是
http://www.xxxdu[......]
参考文章:Normalize URL path python
首先说下什么叫URL拼接,我们有这么一个HTML片段:
<a href="../../a.html">click me</a>
做为一只辛苦的爬虫,我们要跟踪到这个click me指向的页面,假设这个片段来自:http://www.xxxdu.com,那么目标页面是什么呢?
显然不是
http://www.xxxdu.com/../../a.html
而是
http://www.xxxdu[......]
摘抄自:http://webpy.org/tutorial3.zh-cn
要注意 web.py
将会转义任何任何用到的变量,所以当你将 name
的值设为是一段 HTML 时,它会被转义显示成纯文本。如果要关闭该选项,可以写成 $:name
来代替 $name
。
如果我们想部分转移,怎么办?
webpy显然提供了转移函数,我们在应用层直接调用就可以了。
from web.net import htmlquote
htmlquote(raw_text)[......]
高亮的概念很简单:搜索引擎中,把匹配的关键词变色。
我们可以用Python的正则实现这个功能。
re.sub提供了替换全部的功能,在替换串repl中,可以用\g<0>表示找到的第一个组,代码如下:
text = re.sub("%s" % (w), "<em>\g<0></em>", text, re.IGNORECASE | re.MULTILINE)[......]
我们要的是一个可读的字符串,因此os.urandom这种是不靠谱的。
[python]
#生成一个Population
pop = [chr(i) for i in xrange(33, 126 + 1)]
#sample随机选取,然后再Join
print "".join(random.sample(pop, 64))
[/python][......]
Sqlite3的数据库,在删除数据时并不会回收空间,因此Sqlite3提供了一个特殊操作:VACUUM,调用它,我们可以压缩数据库。
当然,在Python中压缩也是非常简单的。
[python]
def compact_sqlite3_db():
try:
conn = sqlite3.connect(SQLITE_FILE)
conn.execute("VACUUM")
conn.close()[......]